---
# System prepended metadata

title: Java小整理

---

# Java小整理
[TOC]
## 環境設置＆檢測
### Download~~
請先到以下版本下載jdk包（假如你想要寫產品發佈的話請改用openjdk像red hat發布的，不然某o公司的法顧也是滿強的）
https://www.oracle.com/java/technologies/downloads/
### MacOS
> Mac 就是讚啦一路按到底就可以了

x86-64架構（intel處理器）選最下面的
arm架構（apple m1/m1 pro/m1 max）的選第二個
![](https://i.imgur.com/7Jl7F55.png) 
不知道處理器是哪個的可以在這裡看： 左上角apple標誌>關於這台mac>處理器
![](https://i.imgur.com/a7QVN10.png)
像我的就是intel的
打開它 
![](https://i.imgur.com/yJkOsQ0.png) ![](https://i.imgur.com/d5tA7tp.png)
![](https://i.imgur.com/ioz07Y2.png) ![](https://i.imgur.com/JxcZFco.png)
![](https://i.imgur.com/ssnGVLx.png) ![](https://i.imgur.com/MhMiimp.png) 
檢測～～
請在「終端機」輸入2個指令：
```java --version```
```javac --version```
![](https://i.imgur.com/wbZkHOq.png) 出現類似的文字就是設置完成囉

### Windows系統
選二或三都可以，以下為第二個的示範
![](https://i.imgur.com/vOCTamn.png)
下載完後把它點開
![](https://i.imgur.com/G8NGzfQ.png)
然後照預設值按到底
![](https://i.imgur.com/KAtNPzD.png)
當出現這個畫面就是安裝完成了
![](https://i.imgur.com/Oj8Fl4k.png)

**檢驗**
<div id="windows檢測"/>

同時按windows和r鍵輸入cmd叫出終端機
![](https://i.imgur.com/jqI6VcQ.png)

一樣輸入```java --version```和```javac --version```檢測是否有設好環境變數，新版的應該會自己設定好，如果失敗跳到[這裡](#環境變數設置)解決
![](https://i.imgur.com/bE6pR37.png)
跳出這個結果就代表安裝成功了。

<br>

## Trouble shooting
### 環境變數設置
若發現環境變數設置失敗，則進行下列步驟執行設置
1. 開啟設置
2. 點「系統」 > 左側選單的「關於」> 右側「進階系統設定」
![](https://i.imgur.com/HP4xOoY.png)
![](https://i.imgur.com/meWezWe.png)
![](https://i.imgur.com/fFEbGJ9.png)

3. 「環境變數設置」> 先點系統變數中的path再點編輯
![](https://i.imgur.com/cvJmL8x.png)

4. 貼上java的安裝位址
![](https://i.imgur.com/CPPUcKQ.png)

5. 執行[檢測步驟](#windows檢測)

## Helloworld.java

完成系統變數的設置之後，即可開始編譯了
首先開啟任何一個編輯器NOTEPAD++, VSCODE, 等等皆可
檔名設置為 ==Helloworld.java== (一定要一樣，不然會跳錯)，然後輸入下列內容

```java=
public class Helloworld{
    public static void main(String[] argv){
        System.out.println("helloworld!");
    }
}
```

存檔，打開終端機
用cd前往當前目錄後
輸入```javac Helloworld.java```
然後呼叫java來執行```java Helloworld```
![](https://i.imgur.com/VDTSiTG.png)


<br>

## 考前整理
class: 為定義任何Java程式之必要關鍵字
class的命名：大寫開頭，避免用到保留字（\關鍵字）keywords
public: 讀取權限的設定，使此程式可被外界讀取及執行
main methos:為程式的主方法，

### How to compile:
```bash=
#編譯指令
javac Welcome1.java
#執行指令
java Welcome1
```
在執行編譯指令產出*中介碼.class*後，須交由每個機器上的JVM來執行，在JVM執行時會從main開始

### 列印指令
```java=
/* This is comments, the belows are function that print the "String" on the DOS*/
System.out.print();
System.out.println();
System.out.printf();
```
#### 跳脫字元
再格式化列印的函式中使用：System.out.printf()
%s 代表輸出字串，%d代表十進位數字，%f代表浮點數，%%代表“％”符號，%n代表換行符號

### 型態
#### 基本資料型態ＰＤＴ, primitive data type
數字、布林職等
#### 物件型態
==String字串型態==
#### 算術運算
=為指定運算子Assignment Operator
(double) 為型態指定運算子(casting operator)

### Statements
#### Sequential Structure
> The structure that execute the statements from top to down
#### Selecction Structure
> The structure that conditionally execete the statements
- if
- if-else
- nested if
- switch
- shorthand if-else Syntax
    - condition > (when true execute):(when false execute);
##### Equity and relational operator關係運算子

#### Repetition Structure
- while
- for
- do-while
##### Compound Assignment operator 複合指定運算子
##### Increment and decrement operators 遞增遞減運算子
## Scanner 物件
載入方法
```java=
import java.util.Scanner;
```
使用方法
```java=
import java.util.Scanner;
/*main裡：*/
Scanner s = new Scanner(System.in); //創造一個物件s來監聽來自系統匯流排的資料
int a= s.nextInt();                 // 收到的視為整數指定予a
String txt = s.nextLine();          //讀入一整行，視為字串指定予txt
float f = s.nextDouble();           //讀入浮點數，指定予f
while(s.hasNext()){
    //當可以持續讀入時，執行while loop中的述句
}
```

## Random物件
載入方法
```java=
import java.util.Random;
```
usage
```java=
import java.util.Random;
public class Demo{
    public static void main(String args[]){
        Random r = new Random();
        int point = r.nextInt(6)+1;
    }
}
```


