Java 基本語法#
1. 關鍵字與保留字#
1.1 關鍵字 (keyword) 的定義和特點#
- 定義:被 Java 語言賦予了特殊含義,用做專門用途的字符串(單詞)
- 特點:關鍵字中所有字母都為小寫
- 官方地址 (點擊跳轉)
1.2 保留字 (reserved word)#
Java 保留字:現有 Java 版本尚未使用,但以後版本可能會作為關鍵字使用。自己命名標識符時要避免使用這些保留字。goto 、const
1.3 標識符 (Identifier)#
標識符:#
- Java 對各種變量、方法和類等要素命名時使用的字符序列稱為標識符。
- 技巧:凡是自己可以起名字的地方都叫標識符。
定義合法標識符規則:#
- 由 26 個英文字母大小寫,0-9 ,_或 $ 組成
- 數字不可以開頭。
- 不可以使用關鍵字和保留字,但能包含關鍵字和保留字。
- Java 中嚴格區分大小寫,長度無限制。
- 標識符不能包含空格。
1.4Java 中的名稱命名規範:#
- 包名:多單詞組成時所有字母都小寫:xxxyyyzzz
- 類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz
- 變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz
- 常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接:XXX_YYY_ZZZ
2. 變量#
2.1 變量的概念:#
- 內存中的一個存儲區域
- 該區域的數據可以在同一類型範圍內不斷變化
- 變量是程序中最基本的存儲單元。包含變量類型、變量名和存儲的值
2.2 變量的作用:#
- 用於在內存中保存數據
2.3 使用變量注意:#
- Java 中每個變量必須先聲明,後使用
- 使用變量名來訪問這塊區域的數據
- 變量的作用域:其定義所在的一對 { } 內
- 變量只有在其作用域內才有效
- 同一個作用域內,不能定義重名的變量
2.4 聲明變量#
- 語法:<數據類型> < 變量名稱 >
- 例如:int var;
2.5 變量的賦值#
- 語法:<變量名稱> = < 值 >
- 例如:var = 10;
2.6 聲明和賦值變量#
- 語法: <數據類型> < 變量名 > = < 初始化值 >
- 例如:int var = 10;
2.7 變量的分類 - 按數據類型#
- 對於每一種數據都定義了明確的具體數據類型(強類型語言),在內存中分配了不同大小的內存空間。
- 補充:變量的分類 - 按聲明的位置的不同
- 在方法體外,類體內聲明的變量稱為成員變量。
- 在方法體內部聲明的變量稱為局部變量。
- 注意:二者在初始化值方面的異同
- 同:都有生命週期 異:局部變量除形參外,需顯式初始化
2.8 整數類型:byte、short、int、long#
- Java 各整數類型有固定的表數範圍和字段長度,不受具體 OS 的影響,以保證 java 程序的可移植性。
- java 的整型常量默認為 int 型,聲明 long 型常量須後加‘l’或‘L’
- java 程序中變量通常聲明為 int 型,除非不足以表示較大的數,才使用 long
public class VariableTest {
public static void main(String[] args) {
int number1;
number1 = 10;
int number2;
number2 = 20;
int number3;
number3 = number1 + number2;
System.out.println("Number3 = " + number3);
int number4 = 50;
int number5 = number4 - number3;
System.out.println("Number5 = " + number5);
}
}
2.9 浮點類型:float、double#
- 與整數類型類似,Java 浮點類型也有固定的表數範圍和字段長度,不受具體操作系統的影響。
- 浮點型常量有兩種表示形式:
- 十進制數形式:如:5.12 512.0f .512 (必須有小數點)
- 科學計數法形式:如:5.12e2 512E2 100E-2
- float: 單精度,尾數可以精確到 7 位有效數字。很多情況下,精度很難滿 足需求。double: 雙精度,精度是 float 的兩倍。通常採用此類型。
- Java 的浮點型常量默認為 double 型,聲明 float 型常量,須後加‘f’或‘F’。
2.10 字符類型:char#
- char 型數據用來表示通常意義上 “字符”(2 字節)
- Java 中的所有字符都使用 Unicode 編碼,故一個字符可以存儲一個字
母,一個漢字,或其他書面語的一個字符。 - 字符型變量的三種表現形式:
- 字符常量是用單引號 (‘ ’) 括起來的單個字符。例如:char c1 = 'a'; char c2= ' 中 '; char c3 = '9';
- Java 中還允許使用轉義字符‘\’來將其後的字符轉變為特殊字符型常量。
例如:char c3 = ‘\n’; // '\n' 表示換行符 - 直接使用 Unicode 值來表示字符型常量:‘\uXXXX’。其中,XXXX 代表
一個十六進制整數。如:\u000a 表示 \n。
- char 類型是可以進行運算的。因為它都對應有 Unicode 碼。
2.11 布林類型:boolean#
- boolean 類型用來判斷邏輯條件,一般用於程序流程控制:
- if 條件控制語句;
while 循環控制語句;
do-while 循環控制語句;
for 循環控制語句; - boolean 類型數據只允許取值 true 和 false,無 null。
- 不可以使用 0 或非 0 的整數替代 false 和 true,這點和 C 語言不同。
- Java 虛擬機中沒有任何供 boolean 值專用的字節碼指令,Java 語言表達所操作的 boolean 值,在編譯之後都使用 java 虛擬機中的 int 數據類型來代替:true 用 1 表示,false 用 0 表示。———《java 虛擬機規範 8 版》
2.12 基本數據類型轉換#
- 自動類型轉換:容量小的類型自動轉換為容量大的數據類型。數據類型按容量大小排序為:
- - 有多種類型的數據混合運算時,系統首先自動將所有數據轉換成容量最大的那種數據類型,然後再進行計算。
- byte,short,char 之間不會相互轉換,他們三者在計算時首先轉換為 int 類型。
- boolean 類型不能與其它數據類型運算。
- 當把任何基本數據類型的值和字符串 (String) 進行連接運算時 (+),基本數據類型的值將自動轉化為字符串 (String) 類型。
2.13 字符串類型:String#
- String 不是基本數據類型,屬於引用數據類型
- 使用方式與基本數據類型一致。例如:String str = “abcd”;
- 一個字符串可以串接另一個字符串,也可以直接串接其他類型的數據。例如:str = str + “xyz” ; int n = 100; str = str + n
public class StringTest {
public static void main(String[] args) {
int no = 10;
String str = "abcdef";
String str1 = str + “xyz” + no;
str1 = str1 + "123";
char c = '國';
double pi = 3.1416;
str1 = str1 + pi;
boolean b = false;
str1 = str1 + b;
str1 = str1 + c;
System.out.println("str1 = " + str1);
}
}
2.14 強制類型轉換#
- 自動類型轉換的逆過程,將容量大的數據類型轉換為容量小的數據類型。使用時要加上強制轉換符:(),但可能造成精度降低或溢出,格外要注意。
- 通常,字符串不能直接轉換為基本類型,但通過基本類型對應的包裝類則可以實現把字符串轉換成基本類型。
- 如: String a = “43”; int i = Integer.parseInt (a);
- boolean 類型不可以轉換為其它的數據類型。
3. 運算符#
- 運算符是一種特殊的符號,用以表示數據的運算、賦值和比較等。
- 算術運算符
賦值運算符
比較運算符(關係運算符)
邏輯運算符
位運算符
三元運算符
3.1 運算符:算術運算符#
- 算術運算符的注意問題
- 如果對負數取模,可以把模數負號忽略不記,如:5%-2=1。 但被模數是負數則不可忽略。此外,取模運算的結果不一定總是整數。
- 對於除號 “/”,它的整數除和小數除是有區別的:整數之間做除法時,只保留整數部分而舍棄小數部分。
- “+” 除字符串相加功能外,還能把非字符串轉換成字符串。
3.2 運算符:賦值運算符#
- 符號:=
當 “=” 兩側數據類型不一致時,可以使用自動類型轉換或使用強制
類型轉換原則進行處理。
支持連續賦值。 - 擴展賦值運算符: +=, -=, *=, /=, %=
- 比較運算符的結果都是 boolean 型,也就是要麼是 true,要麼是 false。
- 比較運算符 “==” 不能誤寫成 “=” 。
3.3 運算符:邏輯運算符#
- &— 邏輯與 | — 邏輯或 !— 邏輯非
&& — 短路與 || — 短路或 ^ — 邏輯異或
- 邏輯運算符用於連接布林型表達式,在 Java 中不可以寫成 3<x<6,應該寫成 x>3 & x<6 。
- “&” 和 “&&” 的區別:
單 & 時,左邊無論真假,右邊都進行運算;
雙 & 時,如果左邊為真,右邊參與運算,如果左邊為假,那麼右邊不參與運算。 - “|” 和 “||” 的區別同理,|| 表示:當左邊為真,右邊不參與運算。
- 異或 (^) 與或 ( | ) 的不同之處是:當左右都為 true 時,結果為 false。
- 異或,追求的是 “異”!(相同為 0,不同為 1)
3.4 運算符:位運算符#
- 位運算是直接對整數的二進制進行的運算
3.5 運算符:三元運算符#
-
格式:
(條件表達式)? 表達式 1:表達式 2;
為 true,運算後的結果是表達式 1;
為 false,運算後的結果是表達式 2;
表達式 1 和表達式 2 為同種類型
三元運算符與 if-else 的聯繫與區別:
1)三元運算符可簡化 if-else 語句
2)三元運算符要求必須返回一個結果。
3)if 後的代碼塊可有多個語句 -
運算符的優先級