Java基礎知識補充(一)
Java基礎知識總結
環境變數配置
jdk與jre區別: jdk:開發工具包(jre+開發工具包) jre:Java執行環境(jvm+核心類庫)
path與classpath的區別: path環境變數裡面記錄的是可執行檔案,如.exe檔案,對可執行檔案先在當前路徑去找,如果沒有找到就去path環境變數中配置的路徑去找 classpath環境變數裡記錄的是Java類的執行檔案所在的目錄
資料型別
基本資料型別:
型別 | 所佔位元組 | 取值範圍 |
---|---|---|
byte | 1 | -128~127 |
short | 2 | -215 |
int | 4 | -231~231-1 |
long | 8 | -263~263-1 |
float | 4 | |
double | 8 | |
char | 2 | 0~65535 |
boolean | 未規定 |
’'中必須放的是單個字元,10代表的是1字元和0字元 ''中什麼也不放也不可以,因為什麼都代表不了 用單引號括起來的內容,裡面只能放單個數字,單個字母或單個符號 float的取值範圍大於long
識別符號命名:
- 可以包含數字,字母,下劃線(_),美元符號($),但不能以數字開頭
- 嚴格區分大小寫
- 不能包含Java關鍵字和保留字
- 最好能做到見名知意
方法和變數名的命名規則:
- 滿足識別符號命名規則
- 符合駝峰法命名規範(如果是一個單詞,每個字母都小寫,如果是多個單詞,從第二個單詞開始首字母大寫) 儘量簡單,做到見名知意
- 變數名的長度沒有限制
類或介面的命名規則: 滿足Pascal命名法規範(一個單詞首字母大寫,多個單詞,每個單詞的首字母大)
包: 包名要求全部小寫,一般是公司的域名倒著寫 常量: 如果是一個單詞,所有字母大寫,如果是多個單詞也是所有字母大寫,但是用_分開
型別轉換
二進位制:以0b開頭 八進位制:以0開頭,包括0-7的數字 十六進位制:以0x或0X開頭,包括0-9的數字,及字母a-f或A-F
例: byte b1=3; byte b2=4; byte b3=b1+b2; (編譯錯誤) byte與byte(或short,char)進行運算的時候會提升為int,兩個int型別相加的結果也是int型別
byte b4=4+3; (編譯正常) java編譯器有常量優化機制
進行混合運算的時候,byte,short,char不會相互轉換,都會自動將型別提升為int型別,其他型別進行混合運算的是小的資料型別提升為大的 byte,short,char—int—long—float—double
int x=4; int y=(x++)+(++x)+(x*10); //x=6;y=70;
byte b=10; b++; //b++等價於b=(byte)(b+1); 正確 b=b+1; //錯誤
short s=1; s=s+1; //報錯,不相容的型別: 從int轉換到short可能會有損失 s+=1; //正確,等價於s=(short)(s+1);
運算子
^邏輯異或:相同為false,不同為true。
位運算子
- &:有0則0
- |:有1則1
- ^:相同則0,不同則1
- ~:按位取反
位異或運算子的特點: ^的特點:一個數據對另一個數據位異或兩次,該數本身不變。 System.out.println(5^10^10); //5 System.out.println(5^10^5); //10
實現兩個整數變數的交換: 1.定義一個第三方變數 (開發推薦) 2. int x=10; (但是有弊端,兩數相加可能會) int y=5; x=x+y; y=x-y; x=x-y; 3.不需要第三方變數,通過^來做 (面試推薦) x=x^y; //10^5 y=x^y; //10^5^5 y=10 x=x^y; //10^5^10 x=5
<<: 左移,左邊最高位丟棄,右邊補齊0 左移,向左移動幾位就是乘以2的幾次冪 >>: 右移,最高位是0,左邊補齊0;最高位是1,左邊補齊1 右移,向右移動幾位就是除以2的幾次冪 >>>: 無符號右移,無論最高位是0還是1,左邊補齊0