# Java基礎語法
## 一、變量
### 1.1 標識符
* 命名規則:可以由字母、數字、下劃線和美元符號組成,不能以數字開頭。
* 標識符嚴格區分大小寫
* 標識符不能是Java關鍵字和保留字
* 標識符的命名最好能反映其作用
### 1.2 關鍵字

### 1.3 變量
什么是變量?
三個元素:變量類型、變量名和變量值。

變量名的命名規則:
* 滿足標識符命名規則
* 符合駝峰式命名規范
* 盡量簡單,做到見名知意
* 變量名的長度沒有嚴格顯示
類的命名規則:
滿足Pascal命名法規范
### 1.4 數據類型

**按類型分為:**
基本數據類型、引用數據類型。
**按照作用范圍分為:**
類級、對象實例級、方法級、塊級

**整型字面值:**
Java中有三種表示整數的方法:十進制、八進制、十六進制。
* 八進制:以0開頭
* 十六進制:以0x或0X開頭,包括0-9、A-F
**浮點數字面值:**
浮點型字面值默認情況下表示double類型,也可以在值后加d或D。如表示float類型,則需要在字面值后加F或f。
```
package webjust.org;
public class FloatDemo {
public static void main(String[] args) {
// 定義一個單精度浮點型變量,存放1234.328
float f = 1234.328f;
System.out.println("f=" + f);
// 定義一個雙精度浮點型變量,存放5623.465
double d = 5623.464;
System.out.println("d=" + d);
// 將整型賦值給浮點型
double d1 = 123;
System.out.println("d1=" + d1);
// 變量間的賦值
double d2 = d;
System.out.println("d2=" + d2);
/*
f=1234.328
d=5623.464
d1=123.0
d2=5623.464
*/
}
}
```
**字符型字面值:**
字符型字面值用單引號內的單個字符表示。
ASCII碼:
* ASCII 美國標準信息交換代碼
* 基于拉丁字母的一套電腦編碼系統
* 主要用于顯示現代英語和其他西歐語言
* 使用7位或8位二進制數組合來表示128或256種可能的字符
```
package webjust.org;
public class CharDemo {
public static void main(String[] args) {
// 定義一個字符變量存放字符'a'
char a = 'a';
char ch = 65;
char ch2 = 65535;
// 如果字面值超出了char類型所表示的數據范圍,需要進行強制數據類型轉換
char ch3 = (char) 65536;
System.out.println(a); // a
System.out.println(ch); // A
System.out.println(ch2);
System.out.println(ch3);
char c = '\u005d';
System.out.println("c=" + c); // c=]
}
}
```
Unicode編碼:
Unicode編碼的目標是支持世界上所有的字符集。
Unicode表示法,在值前加前綴 `\u`。
### 1.5 變量聲明
```
格式:數據類型 變量名;
```
賦值:
* 使用 `=` 運算符進行賦值。
* `=` 叫做賦值運算符,將運算符右邊的值賦給左邊的變量。
* 可以在定義變量的同時給變量賦值,即變量的初始化。
### 1.6 局部變量的存儲方式
基本數據類型變量存儲在內存的“棧”上。

### 1.7 類型轉換
類型轉換分為自動類型轉換和強制類型轉換。
**自動類型轉換**又叫隱式類型轉換。
圖:自動類型轉換順序

**強制類型轉換**:如果A類型的數據表示范圍比B類型大,則將A類型的值賦值給B類型,需要強制類型轉換。
格式:`(數據類型)數值`
```
package webjust.org;
public class TypeExchange {
public static void main(String[] args) {
// char類型和int類型之間的轉換
char c = (char) 65535;
int n;
n = c; // 隱式類型轉換
System.out.println(c);
System.out.println(n);
// 整型和浮點型類型之間的轉換
int x = 100;
long y = x;
x = (int) y;
float f = 100000000000000L;
System.out.println("f=" + f); //f=1.0E14
// 自動類型轉換出現數據丟失問題
float f1 = 134238877665544L;
System.out.println("f1=" + f1); // f1=1.34238876E14
}
}
```
### 1.8 常量
* 使用final關鍵字定義常量;
* 常量的值不能被修改;
* 常量的名稱為大寫;
```
package webjust.org;
public class FinalDemo {
public static void main(String[] args) {
int m = 10;
final int n = 1;
m = 20;
// n = 2; //語法錯誤
final double PI = 3.1415926;
final double MIN_VALUE = 0;
}
}
```
## 二、運算符