天天看點

JavaSE基礎系列之變量和資料類型

一.變量

變量的概念:當程式需要記錄單個資料,定義一個變量,聲明變量的實質是在記憶體中開辟一塊存儲單元,開辟的存儲單元的内容會改變,是以聲稱"變量"。

變量的聲明方式:資料類型 變量名=初始值;(例如: int a=3;)。

辨別符的命名法則:可字母,數字,下滑線,$等組成,但不能以數字開頭,不能使用java關鍵字命名。

 二.資料類型

JavaSE基礎系列之變量和資料類型

三.常用的ASCII及其轉義字元

常見字元對應ASCII碼:'0'~48,'A'~65,'a'~97,空格~32,換行符~10

四.基本資料類型範圍及占位元組數

JavaSE基礎系列之變量和資料類型

五.自動類型轉換及強制類型轉換

自動類型轉換(隐式類型轉換):滿足條件一:兩種資料類型彼此相容;條件二:目标類型的取值範圍大于源資料類型(低級類型資料換成進階類型資料)。例如:byte類型向short類型轉換時,由于short類型取值範圍較大,會自動将byte轉換為short;

強制類型轉換:當兩種資料類型不相容,或目标類型的取值範圍小于源類型時,自動轉換将無法進行,這時就需要強制類型轉換;(注:若業務計算對精度比較高,慎用double,float 建議用若希望實作精确運算則借助java.math.BigDecimal類型)

六.單個位元組表示範圍推導過程

在計算機中單個位元組表示八位二進制位, 為什麼是-128~127呢?(注:其中最高位最左邊代表符号位)推導如下

非負數所能表示的整數範圍:0000  0000  ~  0111 1111=>0~127=>0  ~ 2^7-1

       0111 1111=>0*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0

       =>0+64+32+16+8+4+2+1

       =>127

負數所能表示的整數範圍: 1000 0000  ~ 1111  1111

      1000 0000=>先減1:   0111 1111

             =>按位取反:  1000 0000

     1000 0000=>0*2^7+1*2^0+1*2^0+1*2^0+1*2^0+1*2^0+1*2^0+1*2^0

             =>轉為十進制:128

             =>添加負号:-128

    很顯然可以看到是因為整數二進制數符号位是0,負數的二進制符号位是1,得出  -128~127.