1. 程式人生 > >Java基礎知識補充(一)

Java基礎知識補充(一)

Java基礎知識總結

環境變數配置

jdk與jre區別:         jdk:開發工具包(jre+開發工具包)         jre:Java執行環境(jvm+核心類庫)

path與classpath的區別:         path環境變數裡面記錄的是可執行檔案,如.exe檔案,對可執行檔案先在當前路徑去找,如果沒有找到就去path環境變數中配置的路徑去找         classpath環境變數裡記錄的是Java類的執行檔案所在的目錄

資料型別

基本資料型別:

型別 所佔位元組 取值範圍
byte 1 -128~127
short 2 -215
~215-1
int 4 -231~231-1
long 8 -263~263-1
float 4
double 8
char 2 0~65535
boolean 未規定

’'中必須放的是單個字元,10代表的是1字元和0字元 ''中什麼也不放也不可以,因為什麼都代表不了 用單引號括起來的內容,裡面只能放單個數字,單個字母或單個符號 float的取值範圍大於long

識別符號命名:

  1. 可以包含數字,字母,下劃線(_),美元符號($),但不能以數字開頭
  2. 嚴格區分大小寫
  3. 不能包含Java關鍵字和保留字
  4. 最好能做到見名知意

方法和變數名的命名規則:

  1. 滿足識別符號命名規則
  2. 符合駝峰法命名規範(如果是一個單詞,每個字母都小寫,如果是多個單詞,從第二個單詞開始首字母大寫) 儘量簡單,做到見名知意
  3. 變數名的長度沒有限制

類或介面的命名規則:       滿足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型別

b1和b2是兩個變數,變數儲存的值是變化,在編譯的時候無法判斷裡面具體的值,相加有可能會超出byte的取值範圍

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