目錄
關鍵字及標識符
Java中有一些具有特殊用途的詞被稱爲關鍵字。關鍵字區分大小寫。
abstract | boolean | break | byte | case | catch |
---|---|---|---|---|---|
char | class | continue | default | do | double |
else | extends | false | final | finally | float |
for | if | implements | import | instanceof | int |
interface | long | native | new | null | package |
private | protected | public | return | short | static |
super | switch | synchronized | this | throw | throws |
transient | true | try | void | volatile | while |
Java中用來標識變量名、類名、類中的方法名和文件名的關鍵字叫做標識符。
使用標識符需要遵守的幾點規則
1.標識符可以由字母、數字、下劃線、美元符號組成,但是不能包含@、%、空格等其他特殊字符,不能以數字開頭;
2.標識符不能使Java關鍵字和保留字,但可以包含關鍵字和保留字;
3.標識符大小寫敏感,嚴格區分大小寫;
4.標識符的命名要起到見名知意的作用,看到名字就能反映出它要表達的意思。
命名規範
1.標識符要符合語義信息;
2.包名命名的時候所有字母全部小寫;
3.類名每個單詞首字母大寫,其他字母小寫(駝峯命名法);
4.變量和方法命名:第一個單詞小寫,從第二個單詞開始首字母大寫;
5.常量名:所有字母大寫,每個單詞之間用"_"連接。
變量
變量是計算機語言中能儲存計算結果或能表示值的抽象概念。變量可以通過變量名訪問。Java中通過三個元素描述變量,分別是變量類型、變量名和變量值。
變量命名規則:變量命名使用駝峯命名規則,就是第一個單詞小寫,從第二個單詞開始首字母大寫;命名儘量簡短且能清楚的表達變量的作用,做到見名知意;Java變量名命名嚴格區分大小寫,但是對變量名長度沒有限制。
變量的使用規則
變量需要先聲明後使用;
變量使用時,可以聲明變量的同時進行初始化,也可以先聲明後賦值;
變量中每次只能賦一個值,但可以修改多次;
main方法中定義的變量必須先賦值,然後才能輸出;
實際開發中變量名不建議使用中文,容易產生安全隱患,例如跨平臺出現亂碼。
常量
常量是一種特殊的變量,它的值被設定後在程序運行過程中不允許改變。
語法: final 常量名 = 值 ;(所有字母大寫,每個單詞之間用"_"連接)
程序中使用常量可以提高代碼的可維護性。常量名一般使用大寫字符。
局部變量
不是聲明在類體括號裏面的變量稱之爲局部變量(定義在函數方法或者形參列表中)。
局部變量沒有默認初始化值,必須要先賦值後使用,否則無法通過編譯;
局部變量的作用範圍:定義開始到定義它的代碼塊結束;在同一範圍內不允許兩個局部變量名命名衝突。
靜態變量、實例變量
Java中被 static 關鍵字修飾(static是靜態修飾符)的變量我們稱之爲靜態變量,沒有被static關鍵字修飾的變量我們稱之爲實例變量。靜態變量可以被類中的所有對象所共享,屬於整個類所有而不是某個對象所有。靜態變量可以直接使用類名方法訪問,也可以使用對象名進行訪問。
靜態變量與實例變量的區別
靜態變量前要加static關鍵字,而實例變量前則不加。(語法差異)
實例變量屬於某個對象的屬性,只有創建了實例對象它的實例變量纔會被分配空間,這個實例變量才能被使用。
靜態變量只屬於類,所以也稱爲類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,就可以被使用了。
實例變量必須創建對象後纔可以通過對象來使用,靜態變量則可以直接使用類名來引用。(程序運行時內存分配差異)
類的靜態變量在內存中只有一個,java虛擬機在加載類的過程中爲靜態變量分配內存,靜態變量位於方法區,被類的所有實例共享。靜態變量可以直接通過類名進行訪問,其生命週期取決於類的生命週期。而實例變量取決於類的實例。每創建一個實例,java虛擬機就會爲實例變量分配一次內存,實例變量位於堆區中,其生命週期取決於實例的生命週期。(生命週期差異)
自動類型轉換
自動類型轉換:容量小的數據類型可以自動轉換爲容量大的數據類型。
自動類型轉換需要滿足的條件:
1.目標類型能與源類型兼容(例如double類型兼容int型,但是char型不兼容int型);
2.目標類型大於源類型(例如double類型長度爲8字節,int類型長度爲4字節,所以double類型的變量裏直接可以存放int類型的數據,反之不可以)。
強制類型轉換
強制轉換類型:將高級別類型賦值給低級別類型時,必須進行強制類型轉換。
在Java中,強制類型轉換是爲了防止程序員在不知情的情況下將不同的數據類型搞混淆。將一種類型的值賦給另一種類型的變量是很常見的,如果兩種類型兼容則進行自動轉換,如果兩種類型不兼容則需要用到強制類型轉換。
在Java中子類可以很自然地轉換爲父類,但是父類轉換爲子類需要進行強制類型轉換。因爲子類擁有比父類更多的屬性、更強的功能,所以需要進行強制類型轉換操作。
語法: (數據類型)數值
強制類型轉換可能會造成數據或者精度丟失,需要多方考慮慎重使用。
註釋
在我們的項目開發過程中我們需要給代碼添加一些註釋來描述某段代碼的作用。Java中的註釋有三種類型,分別是單行註釋、多行註釋和文檔註釋。註釋是給開發人員看的,便於對代碼的理解。
單行註釋(//...):到本行結束所有字符會被編譯器忽略。
多行註釋(/*...*/):在/*...*/之間的所有字符會被編譯器忽略。
文檔註釋(/**...*/):java特有的註釋方式,在/**...*/之間所有的字符會被編譯器忽略。
運算符
運算符是一種"功能符號",用來通知Java進行相關的運算。
Java語言中常用的運算符有算數運算符、賦值運算符、比較運算符和條件運算符。
算數運算符主要用於進行基本的算數運算,加減乘除等。自加自減運算只能用於操作變量,不能直接用於操作數值或常量。"%"用來取餘,也叫"取模運算符"。
int i = 2 ; i ++ (i++ ——> i = i +1)
int i = 10 ; i-- (i-- ——> i = i-1)
算數運算符 | 名稱 | 案例 |
+ | 加 | 1 + 1 = 2 |
- | 減 | 1 - 1 = 0 |
* | 乘 | 2 * 2 = 4 |
/ | 除 | 2 / 2 = 1 |
% | 取餘 | 5 % 2 = 1 |
++ | 自加 | int i = 2 ; i ++ |
-- | 自減 | int i = 10 ; i-- |
賦值運算符指的是變量或常量指定數值的符號,例如可以使用 " = " 將右邊的表達式結果賦值給左邊的操作符。
賦值運算符 | 名稱 | 案例 |
= | 賦值 | a = b+c 將b+c的值賦給a |
+= | 加等於 | 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、b都爲true才返回true |
| | | 或 | a | | b | 當a、b有一個返回true,結果返回true |
! | 非 | !a | 當a=true,則!a=false |
^ | 異或 | a^b | 若a、b有且僅有一個爲true,則返回true |
運算符的優先級
運算符的優先級就是在表達式中的運算順序。優先級爲1的優先級最高,11爲優先級最低。
優先級 | 運算符 |
1 | ( ) |
2 | ! + - ++ -- |
3 | * / % |
4 | + - |
5 | < <= > >= |
6 | == != |
7 | ^ |
8 | && |
9 | || |
10 | ?= |
11 | = += -= *= /= %= |