這章很基礎,算術,邏輯,關係操作符,我們都很熟悉。
其中需要注意的幾點
1.邏輯操作符
&& 短路與
& 非短路與
|| 短路或
| 非短路或
2.按位操作符
& 與運算
| 或運算
^ 異或
~ 取反運算
3.移位操作符
>> 算術右移位運算 (右移,符號爲正,高位爲0,符號爲負,高位爲1)
>>> 邏輯右移位運算 (右移,高位都爲0)
<< 左移位運算 (左移,低位都爲0)
4.類型轉換操作符
這個很重要。普通的窄化,擴展轉換,較易理解。
截尾和舍入問題
當float w= 0.7f 轉成(int)w就會變成0
也就是float或double在轉型成整型值時,總是對該數字執行截尾。
如果想得到舍入結果,用java.lang.Math.round(w)
提升問題
較小和較大的數據類型運算之前,較小的會轉成較大的數據類型。
如float和double相乘,float首先轉成double,結果自然也爲double。
在程序中,經常用int i=50;double result= i*1.0;就是利用提升這個特點。
5.java沒有sizeof,因爲它的數據項分配的字節數在所有機器上大小相同。
6.直接常量
long n = 200L或200l
double n = 1d或1D
float n=1f或1F
十六進制數適用所有整數數據類型,0x後面跟0-9和a-f。
八進制前綴爲0後續0-7;
double exp = 47e47;指數表示法,代表47*e的47次方。e約爲2.718.