1. 程式人生 > >JAVA基礎針對自己薄弱環節總結01(循環之前的知識)

JAVA基礎針對自己薄弱環節總結01(循環之前的知識)

類名 隱式轉換 pro 超出範圍 報錯 暫時 命令 算術運算 賦值


java中的標識符

組成:數字、字母、下劃線、美元$符號組成。
規則:不能由數字開頭。
類名:每一個單詞的首字母大寫
包名:所有小寫
變量名、方法名:第一個單詞首字母小寫。後面首字母大寫
常量:所有大寫用下劃線連接

凝視

單行凝視://
多行凝視:/……/ (不能嵌套)
文檔凝視:/*…../(能夠被javadoc命令解析成Html文檔(說明書))

變量概述

格式一:
數據類型 變量名=初始化值;
格式二:
數據類型 變量名;
變量名=初始化值。
變量在使用前必須初始化。

java中的數據類型

整型:byte 1字節
Short 2字節
Int 4字節
Long 8字節
浮點型:float 4字節
Double 8字節
字符型:char 2字節
布爾型:Boolean

java中定義變量並使用

對 byte,short類型的變量進行賦值時保證在其範圍內就可以。(超出範圍報錯)
對long, float 類型的變量進行賦值時後面必須加L和F。

數據類型轉換

1) 自己主動類型轉換(隱式轉換)
byte char short – int – long – float – double
2) 強制類型轉換(顯式轉換)
(數據類型) 變量或者常量值;
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2; // 此行會報錯,由於參與運算的byte類型會自己主動提升為int類型, 可能損失精度.
byte b4 = 3 + 4; // 不報錯,對於字面值常量3和4, jvm會在編譯期對其進行計算(優化), 並比較其值是否在byte範圍內,假設未超出,則不報錯.

算術運算符

註意:
1) 註意除運算符
1) 除數不能為0.
2) 整形與整形進行運算,結果還是整形.它會將余數舍棄.
比方: 5 / 2 – 結果是2
2) ++ 和 – 運算符原理
以 ++ 為例:
單獨運算:
在前在後都一樣,相當於把值加1
參與運算:
++在前,先加後用. ++a 相當於 a = a + 1
++在後,先用後加. a++ 會產生一個暫時的量, 這個量相當於a的一個副本,然後將a的值自增, 將副本的值返回.
舉例:
int x = 10;
int y = x++;
// 結果是y = 10; x = 11;

 - int x = 10;  
 - a = a++; 
 -  System.out.println(a); // 結果是10

3) 加法運算符的特殊使用方法:
比如: System.out.println(3 + 4 + “hello” + 5 + ‘a’ + 6 + 7); // 輸出結果為: 7hello5a67

邏輯運算符

註意:
    1) java中不能寫成 1 < x < 9 , 而應該寫成 x > 1 & x < 9
    2) & 和 && 的差別:
        單&時,左邊不管真假,右邊都會參與運算.
        雙&時,左邊為真時,右邊才會參與運算;左邊為假時,右邊不會 參與運算,有短路功能.       
    3) | 和 || 的差別同理: 對於雙或,左邊為真時,右邊不會參與運算.

位運算符

<<  左移 -- 將運算數的二進制碼總體左移指定位數,左移之後的空位用0補充.
    相當於乘以2的指定次冪.
>>  右移 -- 將運算數的二進制碼總體右移指定位數,右移之後的空位用符號位補充,假設是正數用0補充,負數用1補充.相當於除以2的指定次冪.
>>> 無符號右移 -- 將運算數的二進制碼總體右移指定位數,無論正負,空位所有都用0補充.

註意:
    1) 沒有無符號左移.
    2) API中非常多源代碼的實現都是採用了位運算符,由於效率高.但咱們開發中自己敲代碼一般不會用,易讀性差.

關於位運算的兩個面試題:
    1) 用最高效的方式計算2*8的結果.
        2 << 3
    2) 不使用第三個變量的前提下,交換兩個變量的值.
        int a = 10;
        int b = 20;
        // 結果要求: a = 20; b = 10;
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;

流程控制語句

switch語句
註意事項:
        a:default總體能夠省略嗎?
            能夠,可是不建議。
        b:default的位置能夠放到前面嗎?
            能夠,可是不建議。

c:break能夠省略嗎? 能夠,可是不建議。 default在最後。break是能夠省略的。 case後面的break能夠省略。可是結果可能有問題。 d:switch語句什麽時候結束呢? 就是遇到break或者運行到程序的末尾。

JAVA基礎針對自己薄弱環節總結01(循環之前的知識)