經常使用關鍵字53個(含2個保留字):html
常數:用於修改字段或局部變量的聲明。java
指定跳轉到標籤,找到標籤後,程序將處理從下一行開始的命令git
可跨包github
當前包內可用spring
當前類可用express
public class A(){}花括號裏是已實現的方法體,類名須要與文件名相同編程
public interface B(){}花括號裏有方法體,但沒有實現,方法體句子後面是英文分號;結尾數組
public abstract class C(){}介於類與接口中間,能夠有,也能夠沒有已經實現的方法體網絡
實現接口public class A implements B(){}併發
繼承類public class A extends D(){}
A a=new A();A表示一個類
將全部相關的類放在一個包類以便查找修改等
引入包
public void A(){}其餘須要反回的常常與return連用
if(條件語句{執行代碼}
若是條件語句成立,就開始執行{}裏面的內容
常與if連用,用法相同:
if(...){...}else{...}
while(條件語句){執行代碼}
通長與while連用 do {} while()
for(初始化循環變量;判斷條件;循環變量值{}
直接跳出循環,執行循環體後的代碼
中斷本次循環,並開始下一輪循環
代碼以下
switch(表達式){ case 常量表達式1:語句1; ... case 常量表達式2:語句2; default:語句; }
返回方法指定類型的值或結束方法的執行
一個二元操做符,和==、>、<是同一類的。測試它左邊的對象是不是它右邊的類的實例,返回boolean類型的數據
屬性和方法均可以用static修飾,直接使用【類名.屬性和類名.方法名】。
只有內部類可使用static關鍵字修飾,調用直接使用【類名.內部類類名】進行調用。
static能夠獨立存在,靜態代碼塊,初始化靜態變量。
常見public void paint(Graphics g){super.paint(g);...}
調用當前類中的方法(表示調用這個方法的對象)this.addActionListener(al):等等
native 關鍵字能夠應用於方法,以指示該方法是用 Java 之外的語言實現的。
在Java虛擬機進行浮點運算時,若是沒有指定strictfp關鍵字時,Java的編譯器以及運行環境在對浮點運算的表達式是採起一種近似於我行我素的行爲來完成這些操做,以至於獲得的結果每每沒法使人滿意。
一旦使用了strictfp來聲明一個類、接口或者方法時,那麼所聲明的範圍內Java的編譯器以及運行環境會徹底依照浮點規範IEEE-754來執行。所以若是想讓浮點運算更加精確,並且不會由於不一樣的硬件平臺所執行的結果不一致的話,那就請用關鍵字strictfp。
能夠將一個類、接口以及方法聲明爲strictfp,可是不容許對接口中的方法以及構造函數聲明strictfp關鍵字
對象在持久化或網絡傳輸時,都須要序列化,而有一些沒有必要出如今序列化結果中的字段,就能夠添加關鍵詞 transient
一個時間內只能有一個線程獲得執行。另外一個線程必須等待當前線程執行完這個代碼塊之後才能執行該代碼塊
{ //執行的代碼,其中可能有異常。一旦發現異常,則當即跳到catch執行。不然不會執行catch裏面的內容 }
{ //除非try裏面執行代碼發生了異常,不然這裏的代碼不會執行 }
{ //無論什麼狀況都會執行,包括try catch 裏面用了return ,能夠理解爲只要執行了try或者catch,就必定會執行 finally }
語法:throw (異常對象);
throw e;
(用在聲明方法時,表示該方法可能要拋出異常)
以下例子:
public void doA(int a) throws Exception1,Exception3{......}
標識符就是用於給 Java 程序中變量、類、方法等命名的符號。
按照【阿里巴巴Java開發手冊】執行比較好。下面摘抄幾個:
反例:_name / name / $name / name_ / name$ / name
說明:正確的英文拼寫和語法可讓閱讀者易於理解,避免歧義。注意,即便純拼音命名方式也要避免採用。
正例:alibaba / taobao / youku / hangzhou 等國際通用的名稱,可視同英文。
反例:DaZhePromotion [打折] / getPingfenByName() [評分] / int 某變量 = 3
正例: localValue / getHttpMessage() / inputUserId
正例:定義整形數組 int[] arrayDemo;
反例:在 main 參數中,使用 String args[]來定義。
反例:定義爲基本數據類型 Boolean isDeleted 的屬性,它的方法也是 isDeleted(),RPC框架在反向解析的時候,「誤覺得」對應的屬性名稱是 deleted,致使屬性獲取不到,進而拋出異常。
正例:應用工具類包名爲 com.alibaba.ai.util、類名爲 MessageUtils(此規則參考 spring的框架結構)
反例:AbstractClass「縮寫」命名成 AbsClass;condition「縮寫」命名成 condi,此類隨意縮寫嚴重下降了代碼的可閱讀性。
操做符 描述 + 加法 - 減法 * 乘法 / 除法 % 取餘 ++ 自增 -- 自減
運算符 描述 == 檢查若是兩個操做數的值是否相等,若是相等則條件爲真。 != 檢查若是兩個操做數的值是否相等,若是值不相等則條件爲真。 > 檢查左操做數的值是否大於右操做數的值,若是是那麼條件爲真。 < 檢查左操做數的值是否小於右操做數的值,若是是那麼條件爲真。 >= 檢查左操做數的值是否大於或等於右操做數的值,若是是那麼條件爲真。 <= 檢查左操做數的值是否小於或等於右操做數的值,若是是那麼條件爲真。
操做符 描述 & 若是相對應位都是1,則結果爲1,不然爲0 | 若是相對應位都是0,則結果爲0,不然爲1 ^ 若是相對應位值相同,則結果爲0,不然爲1 ~ 按位取反運算符翻轉操做數的每一位,即0變成1,1變成0。 << 按位左移運算符。左操做數按位左移右操做數指定的位數。 >> 按位右移運算符。左操做數按位右移右操做數指定的位數。 >>> 按位右移補零操做符。左操做數的值按右操做數指定的位數右移,移動獲得的空位以零填充。
操做符 描述 && 稱爲邏輯與運算符。當且僅當兩個操做數都爲真,條件才爲真。 || 稱爲邏輯或操做符。若是任何兩個操做數任何一個爲真,條件爲真。 ! 稱爲邏輯非運算符。用來反轉操做數的邏輯狀態。若是條件爲true,則邏輯非運算符將獲得false。
操做符 描述 = 簡單的賦值運算符,將右操做數的值賦給左側操做數 += 加和賦值操做符,它把左操做數和右操做數相加賦值給左操做數 -= 減和賦值操做符,它把左操做數和右操做數相減賦值給左操做數 *= 乘和賦值操做符,它把左操做數和右操做數相乘賦值給左操做數 /= 除和賦值操做符,它把左操做數和右操做數相除賦值給左操做數 (%)= 取模和賦值操做符,它把左操做數和右操做數取模後賦值給左操做數 <<= 左移位賦值運算符 >>= 右移位賦值運算符 &= 按位與賦值運算符 ^= 按位異或賦值操做符 |= 按位或賦值操做符
條件運算符也被稱爲三元運算符。該運算符有3個操做數,而且須要判斷布爾表達式的值。該運算符的主要是決定哪一個值應該賦值給變量。 variable x = (expression) ? value if true : value if false 好比 b = (a == 1) ? 20 : 30;
該運算符用於操做對象實例,檢查該對象是不是一個特定類型(類類型或接口類型)。 instanceof運算符使用格式以下: ( Object reference variable ) instanceof (class/interface type) 好比: boolean result = name instanceof String; // 因爲 name 是 String 類型,因此返回真
字面量是指由字母,數字等構成的字符串或者數值,它只能做爲右值出現,所謂右值是指等號右邊的值,
如:int a=123這裏的a爲左值,123爲右值。