这章很基础,算术,逻辑,关系操作符,我们都很熟悉。
其中需要注意的几点
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.