目錄
?一.數據類型
(一)數值類型(用于存儲數字,包括整數和浮點數)
1. **整數類型**
2. **浮點類型**
(二)非數值類型(非數值類型用于存儲非數字數據)
1. **char**
2. **boolean**
二.變量與常量
No.1 變量(是存儲數據的容器,用于在程序運行過程中存儲和操作數據)
(一)變量的聲明
(二)變量的初始化
(三)變量的使用
(四)變量的作用域
No.2 常量(是值不能改變的量,用于存儲固定不變的數據)
(一)常量的聲明
(二)常量的特點
(三)常量的作用
No.3 示例代碼
No.4 變量和常量的命名規則
三.運算符
?(一)算術運算符(用于執行基本的數學運算)
(二)比較運算符(用于比較兩個值的大小,結果為布爾值即true?或 false)
(三)邏輯運算符(用于組合多個條件,結果為布爾值)
(四)位運算符(用于對整數的二進制位進行操作)
(五)賦值運算符(用于將值賦給變量,也可以與其他運算符結合使用)
(六)條件運算符或三元運算符(用于根據條件選擇兩個值中的一個)
(七)示例代碼
四.控制流程語句
?(一)條件語句(用于根據條件的真假來決定是否執行某些代碼塊)
1.if語句
2.if-else語句
3.if-else if-else語句
4.switch語句
(二)循環語句(用于重復執行某段代碼,直到滿足某個條件為止)
1.for循環(用于循環次數已知的情況)
2.while循環(先判斷條件,條件為真時執行循環體)
3.do-while循環(先執行一次循環體,然后再判斷條件)
(三)跳轉語句(用于在循環中控制程序的執行流程)
1.break語句(用于終止循環或switch語句)
2.continue語句(用于跳過當前循環的剩余部分,繼續執行下一次循環)
3.return語句(用于從方法中返回值,也可以用于終止方法的執行)
(四)示例代碼
?一.數據類型
(一)數值類型(用于存儲數字,包括整數和浮點數)
1. **整數類型**
? ?- **byte**
? ? ?- **大小**:1 個字節(8 位)
? ? ?- **范圍**:-128 到 127
? ? ?- **特點**:占用內存空間小,適合存儲小范圍的整數數據。例如,`byte b = 100;`。
? ?- **short**
? ? ?- **大小**:2 個字節(16 位)
? ? ?- **范圍**:-32768 到 32767
? ? ?- **特點**:比 `byte` 類型范圍大,但仍比 `int` 類型小,適用于存儲中等范圍的整數數據。例如,`short s = 30000;`。
? ?- **int**
? ? ?- **大小**:4 個字節(32 位)
? ? ?- **范圍**:-2147483648 到 2147483647
? ? ?- **特點**:這是最常用的一種整數類型,范圍足夠大,適用于大多數整數運算。例如,`int i = 1000000;`。
? ?- **long**
? ? ?- **大小**:8 個字節(64 位)
? ? ?- **范圍**:-9223372036854775808 到 9223372036854775807
? ? ?- **特點**:用于存儲非常大的整數,例如在處理大數字運算或時間戳等場景。定義時需要在數值后面加上“L”或“l”,如 `long l = 123456789012345L;`。
2. **浮點類型**
? ?- **float**
? ? ?- **大小**:4 個字節(32 位)
? ? ?- **特點**:用于存儲單精度浮點數,精度較低,但占用內存空間較小。定義時需要在數值后面加上“f”或“F”,如 `float f = 3.14f;`。
? ?- **double**
? ? ?- **大小**:8 個字節(64 位)
? ? ?- **特點**:用于存儲雙精度浮點數,精度高,是浮點數運算的默認類型。例如,`double d = 3.1415926;`。
(二)非數值類型(非數值類型用于存儲非數字數據)
1. **char**
? ?- **大小**:2 個字節(16 位)
? ?- **特點**:用于存儲單個字符,采用 Unicode 編碼。字符需要用單引號括起來,如 `char c = 'A';`。
2. **boolean**
? ?- **大小**:通常認為占用 1 個字節(實際大小取決于 JVM 實現)
? ?- **特點**:用于存儲布爾值,只有兩個可能的值:`true` 和 `false`。常用于條件判斷,如 `boolean isTrue = true;`。
二.變量與常量
No.1 變量(是存儲數據的容器,用于在程序運行過程中存儲和操作數據)
(一)變量的聲明
數據類型 變量名;
例如:
int age;
double salary;
(二)變量的初始化
數據類型 變量名 = 初始值;
例如:
int age = 25;
double salary = 5000.5;
(三)變量的使用
變量可以在程序中被賦值、讀取和修改。
age = 30; // 修改變量值
System.out.println(age); // 輸出變量值
(四)變量的作用域
變量的作用域是指變量可以被訪問的范圍。
- **局部變量**:在方法或代碼塊中聲明,只能在該方法或代碼塊中使用。
- **成員變量**:在類中聲明,屬于類的實例,可以在整個類中使用。
- **類變量(靜態變量)**:在類中聲明,使用 `static` 關鍵字修飾,屬于類本身,可以通過類名訪問。
No.2 常量(是值不能改變的量,用于存儲固定不變的數據)
(一)常量的聲明
常量使用 `final` 關鍵字聲明。
final 數據類型 常量名 = 常量值;
例如:
final double PI = 3.14159;
(二)常量的特點
- 常量的值在聲明后不能修改。
- 常量名通常使用大寫字母,單詞之間用下劃線分隔,以提高可讀性。
(三)常量的作用
- **提高代碼可讀性**:使用常量名代替具體的值,使代碼更易理解。
- **避免硬編碼**:減少代碼中直接出現的固定值,便于維護和修改。
No.3 示例代碼
public class VariableAndConstantExample {
? ? // 類變量(靜態變量)
? ? static final double PI = 3.14159;
? ? // 成員變量
? ? int radius;
? ? public static void main(String[] args) {
? ? ? ? // 局部變量
? ? ? ? int age = 25;
? ? ? ? // 使用局部變量
? ? ? ? System.out.println("Age: " + age);
? ? ? ? // 創建對象并使用成員變量
? ? ? ? VariableAndConstantExample example = new VariableAndConstantExample();
? ? ? ? example.radius = 5;
? ? ? ? // 使用類變量
? ? ? ? double circumference = 2 * PI * example.radius;
? ? ? ? System.out.println("Circumference: " + circumference);
? ? }
}
No.4 變量和常量的命名規則
- **變量名和常量名**:
? - 不能以數字開頭
? - 只能包含字母、數字、下劃線(_)和美元符號($)
? - 是大小寫敏感的
- **變量名**:
? - 通常使用小寫字母開頭,單詞之間用駝峰命名法(如 `myVariableName`)
- **常量名**:
? - 通常使用大寫字母,單詞之間用下劃線分隔(如 `MY_CONSTANT_NAME`)
三.運算符
?(一)算術運算符(用于執行基本的數學運算)
| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|------------------|--------------|
| `+` ? ?| 加法 ? ? ? ? ? ? ? ? ? ? | `a + b` ? ? ? ? ?| `5 + 3 = 8` ?|
| `-` ? ?| 減法 ? ? ? ? ? ? ? ? ? ? | `a - b` ? ? ? ? ?| `5 - 3 = 2` ?|
| `*` ? ?| 乘法 ? ? ? ? ? ? ? ? ? ? | `a * b` ? ? ? ? ?| `5 * 3 = 15` |
| `/` ? ?| 除法 ? ? ? ? ? ? ? ? ? ? | `a / b` ? ? ? ? ?| `5 / 3 = 1` ?|
| `%` ? ?| 取模(求余) ? ? ? ? ? ? | `a % b` ? ? ? ? ?| `5 % 3 = 2` ?|
| `++` ? | 自增(加1) ? ? ? ? ? ? ?| `a++` 或 `++a` ? | `a = a + 1` ?|
| `--` ? | 自減(減1) ? ? ? ? ? ? ?| `a--` 或 `--a` ? | `a = a - 1` ?|
(二)比較運算符(用于比較兩個值的大小,結果為布爾值即true?或 false)
| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|------------------|--------------|
| `==` ? | 等于 ? ? ? ? ? ? ? ? ? ? | `a == b` ? ? ? ? | `5 == 3` → `false` |
| `!=` ? | 不等于 ? ? ? ? ? ? ? ? ? | `a != b` ? ? ? ? | `5 != 3` → `true` ?|
| `>` ? ?| 大于 ? ? ? ? ? ? ? ? ? ? | `a > b` ? ? ? ? ?| `5 > 3` → `true` ? |
| `>=` ? | 大于等于 ? ? ? ? ? ? ? ? | `a >= b` ? ? ? ? | `5 >= 3` → `true` ?|
| `<` ? ?| 小于 ? ? ? ? ? ? ? ? ? ? | `a < b` ? ? ? ? ?| `5 < 3` → `false` ?|
| `<=` ? | 小于等于 ? ? ? ? ? ? ? ? | `a <= b` ? ? ? ? | `5 <= 3` → `false` |
(三)邏輯運算符(用于組合多個條件,結果為布爾值)
| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|-----------------------------|--------------|
| `&&` ? | 邏輯與(AND) ? ? ? ? ? ?| `a > 0 && b < 10` ? ? ? ? ? | `true && false` → `false` |
| `||` ? | 邏輯或(OR) ? ? ? ? ? ? | `a > 0 || b < 10` ? ? ? ? ? | `true || false` → `true` ?|
| `!` ? ?| 邏輯非(NOT) ? ? ? ? ? ?| `!(a > 0)` ? ? ? ? ? ? ? ? ? | `!true` → `false` ? ? ? ?|
(四)位運算符(用于對整數的二進制位進行操作)
| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|------------------|--------------|
| `&` ? ?| 位與 ? ? ? ? ? ? ? ? ? ? | `a & b` ? ? ? ? ?| `5 & 3 = 1` ?|
| `|` ? ?| 位或 ? ? ? ? ? ? ? ? ? ? | `a | b` ? ? ? ? ?| `5 | 3 = 7` ? |
| `^` ? ?| 位異或 ? ? ? ? ? ? ? ? ? | `a ^ b` ? ? ? ? ?| `5 ^ 3 = 6` ?|
| `~` ? ?| 位非 ? ? ? ? ? ? ? ? ? ? | `~a` ? ? ? ? ? ? | `~5 = -6` ? ?|
| `<<` ? | 左移 ? ? ? ? ? ? ? ? ? ? | `a << 2` ? ? ? ? | `5 << 2 = 20`|
| `>>` ? | 右移(符號位填充) ? ? ? | `a >> 2` ? ? ? ? | `5 >> 2 = 1` |
| `>>>` ?| 無符號右移(零填充) ? ? | `a >>> 2` ? ? ? ?| `5 >>> 2 = 1`|
(五)賦值運算符(用于將值賦給變量,也可以與其他運算符結合使用)
| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? | 等價于 ? ? ? |
|--------|--------------------------|------------------|--------------|
| `=` ? ?| 簡單賦值 ? ? ? ? ? ? ? ? | `a = b` ? ? ? ? ?| `a = b` ? ? ?|
| `+=` ? | 加法賦值 ? ? ? ? ? ? ? ? | `a += b` ? ? ? ? | `a = a + b` ?|
| `-=` ? | 減法賦值 ? ? ? ? ? ? ? ? | `a -= b` ? ? ? ? | `a = a - b` ?|
| `*=` ? | 乘法賦值 ? ? ? ? ? ? ? ? | `a *= b` ? ? ? ? | `a = a * b` ?|
| `/=` ? | 除法賦值 ? ? ? ? ? ? ? ? | `a /= b` ? ? ? ? | `a = a / b` ?|
| `%=` ? | 取模賦值 ? ? ? ? ? ? ? ? | `a %= b` ? ? ? ? | `a = a % b` ?|
| `&=` ? | 位與賦值 ? ? ? ? ? ? ? ? | `a &= b` ? ? ? ? | `a = a & b` ?|
| `|=` ? | 位或賦值 ? ? ? ? ? ? ? ? | `a |= b` ? ? ? ? | `a = a | b` ?|
| `^=` ? | 位異或賦值 ? ? ? ? ? ? ? | `a ^= b` ? ? ? ? | `a = a ^ b` ?|
| `<<=` ?| 左移賦值 ? ? ? ? ? ? ? ? | `a <<= 2` ? ? ? ?| `a = a << 2` |
| `>>=` ?| 右移賦值 ? ? ? ? ? ? ? ? | `a >>= 2` ? ? ? ?| `a = a >> 2` |
| `>>>=` | 無符號右移賦值 ? ? ? ? ? | `a >>>= 2` ? ? ? | `a = a >>> 2`|
(六)條件運算符或三元運算符(用于根據條件選擇兩個值中的一個)
| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|-----------------------------|--------------|
| `? :` ?| 條件運算符 ? ? ? ? ? ? ? | `a > b ? x : y` ? ? ? ? ? ? | `5 > 3 ? 10 : 20` → `10` ? ?|
(七)示例代碼
public class OperatorExample {
? ? public static void main(String[] args) {
? ? ? ? int a = 5;
? ? ? ? int b = 3;
? ? ? ? // 算術運算符
? ? ? ? System.out.println("a + b = " + (a + b)); // 8
? ? ? ? System.out.println("a - b = " + (a - b)); // 2
? ? ? ? System.out.println("a * b = " + (a * b)); // 15
? ? ? ? System.out.println("a / b = " + (a / b)); // 1
? ? ? ? System.out.println("a % b = " + (a % b)); // 2
? ? ? ? // 比較運算符
? ? ? ? System.out.println("a == b: " + (a == b)); // false
? ? ? ? System.out.println("a != b: " + (a != b)); // true
? ? ? ? System.out.println("a > b: " + (a > b)); ? // true
? ? ? ? System.out.println("a >= b: " + (a >= b)); // true
? ? ? ? System.out.println("a < b: " + (a < b)); ? // false
? ? ? ? System.out.println("a <= b: " + (a <= b)); // false
? ? ? ? // 邏輯運算符
? ? ? ? System.out.println("a > 0 && b < 10: " + (a > 0 && b < 10)); // true
? ? ? ? System.out.println("a > 0 || b < 10: " + (a > 0 || b < 10)); // true
? ? ? ? System.out.println("!(a > 0): " + !(a > 0)); // false
? ? ? ? // 位運算符
? ? ? ? System.out.println("a & b = " + (a & b)); // 1
? ? ? ? System.out.println("a | b = " + (a | b)); // 7
? ? ? ? System.out.println("a ^ b = " + (a ^ b)); // 6
? ? ? ? System.out.println("~a = " + (~a)); ? ? ? // -6
? ? ? ? System.out.println("a << 2 = " + (a << 2)); // 20
? ? ? ? System.out.println("a >> 2 = " + (a >> 2)); // 1
? ? ? ? System.out.println("a >>> 2 = " + (a >>> 2)); // 1
? ? ? ? // 賦值運算符
? ? ? ? a += b;
? ? ? ? System.out.println("a += b: " + a);
四.控制流程語句
?(一)條件語句(用于根據條件的真假來決定是否執行某些代碼塊)
1.if語句
if (條件) {
? ? // 條件為 true 時執行的代碼塊
}
示例:
int age = 18;
if (age >= 18) {
? ? System.out.println("成年人");
}
2.if-else語句
if (條件) {
? ? // 條件為 true 時執行的代碼塊
} else {
? ? // 條件為 false 時執行的代碼塊
}
示例:
int age = 16;
if (age >= 18) {
? ? System.out.println("成年人");
} else {
? ? System.out.println("未成年人");
}
3.if-else if-else語句
if (條件1) {
? ? // 條件1為 true 時執行的代碼塊
} else if (條件2) {
? ? // 條件2為 true 時執行的代碼塊
} else {
? ? // 所有條件都不滿足時執行的代碼塊
}
```
示例:
int score = 85;
if (score >= 90) {
? ? System.out.println("優秀");
} else if (score >= 70) {
? ? System.out.println("良好");
} else if (score >= 60) {
? ? System.out.println("及格");
} else {
? ? System.out.println("不及格");
}
4.switch語句
switch (變量) {
? ? case 值1:
? ? ? ? // 變量等于值1時執行的代碼塊
? ? ? ? break;
? ? case 值2:
? ? ? ? // 變量等于值2時執行的代碼塊
? ? ? ? break;
? ? default:
? ? ? ? // 所有條件都不滿足時執行的代碼塊
}
示例:
int day = 3;
switch (day) {
? ? case 1:
? ? ? ? System.out.println("星期一");
? ? ? ? break;
? ? case 2:
? ? ? ? System.out.println("星期二");
? ? ? ? break;
? ? case 3:
? ? ? ? System.out.println("星期三");
? ? ? ? break;
? ? default:
? ? ? ? System.out.println("其他");
}
(二)循環語句(用于重復執行某段代碼,直到滿足某個條件為止)
1.for循環(用于循環次數已知的情況)
for (初始化; 條件; 更新) {
? ? // 循環體
}
示例:
for (int i = 0; i < 5; i++) {
? ? System.out.println("循環次數:" + i);
}
2.while循環(先判斷條件,條件為真時執行循環體)
while (條件) {
? ? // 循環體
}
示例:
int count = 0;
while (count < 5) {
? ? System.out.println("while 循環次數:" + count);
? ? count++;
}
3.do-while循環(先執行一次循環體,然后再判斷條件)
do {
? ? // 循環體
} while (條件);
示例:
int num = 0;
do {
? ? System.out.println("do-while 循環次數:" + num);
? ? num++;
} while (num < 3);
(三)跳轉語句(用于在循環中控制程序的執行流程)
1.break語句(用于終止循環或switch語句)
for (int i = 0; i < 10; i++) {
? ? if (i == 5) {
? ? ? ? break; // 終止循環
? ? }
? ? System.out.println("循環次數:" + i);
}
2.continue語句(用于跳過當前循環的剩余部分,繼續執行下一次循環)
for (int i = 0; i < 10; i++) {
? ? if (i % 2 == 0) {
? ? ? ? continue; // 跳過偶數
? ? }
? ? System.out.println("循環次數:" + i);
}
3.return語句(用于從方法中返回值,也可以用于終止方法的執行)
public int add(int a, int b) {
? ? return a + b; // 返回結果
}
(四)示例代碼
public class ControlFlowExample {
? ? public static void main(String[] args) {
? ? ? ? // 條件語句
? ? ? ? int age = 18;
? ? ? ? if (age >= 18) {
? ? ? ? ? ? System.out.println("成年人");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("未成年人");
? ? ? ? }
? ? ? ? // switch 語句
? ? ? ? int day = 3;
? ? ? ? switch (day) {
? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? System.out.println("星期一");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? System.out.println("星期二");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 3:
? ? ? ? ? ? ? ? System.out.println("星期三");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? System.out.println("其他");
? ? ? ? }
? ? ? ? // for 循環
? ? ? ? for (int i = 0; i < 5; i++) {
? ? ? ? ? ? System.out.println("for 循環次數:" + i);
? ? ? ? }
? ? ? ? // while 循環
? ? ? ? int count = 0;
? ? ? ? while (count < 5) {
? ? ? ? ? ? System.out.println("while 循環次數:" + count);
? ? ? ? ? ? count++;
? ? ? ? }
? ? ? ? // do-while 循環
? ? ? ? int num = 0;
? ? ? ? do {
? ? ? ? ? ? System.out.println("do-while 循環次數:" + num);
? ? ? ? ? ? num++;
? ? ? ? } while (num < 3);
? ? ? ? // break 語句
? ? ? ? for (int i = 0; i < 10; i++) {
? ? ? ? ? ? if (i == 5) {
? ? ? ? ? ? ? ? break; // 終止循環
? ? ? ? ? ? }
? ? ? ? ? ? System.out.println("break 循環次數:" + i);
? ? ? ? }
? ? ? ? // continue 語句
? ? ? ? for (int i = 0; i < 10; i++) {
? ? ? ? ? ? if (i % 2 == 0) {
? ? ? ? ? ? ? ? continue; // 跳過偶數
? ? ? ? ? ? }
? ? ? ? ? ? System.out.println("continue 循環次數:" + i);
? ? ? ? }
? ? }
}