java变量与运算符中的一些细节
1、byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。 boolean类型不能与其它数据类型运算也不可以转换为其它的数据类型。当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。
2、a++:先取值后自增 ++a:先自增后取值
a--:先取值后自减 --a:先自减后取值
3、char类型加减可以做运算,String类型加代表拼接
4、扩展赋值运算符 +=, -=, *=, /=, %=, 隐藏了强制类型转换

5、&—逻辑与 | —逻辑或 !—逻辑非 && —短路与 || —短路或 ^ —逻辑异或

单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
例如:x==1,y==1时



6、三元运算符

7、所有的位移运算都是所有位一起移动,移出去的位舍弃,空出来的位可能补0或1。
左移运算>>:低位补0,高位舍弃(符号位被舍弃了)。若一直左移,数字最终会变为0。
右移运算<<:低位舍弃,高位补符号位(符号位也右移了,但又补上了符号位,相当于符号位被保留了)。若一直右移,正数最终变为0,负数最终变为-1。
无符号右移运算>>>:低位舍弃,高位补0(符号位右移了,不再是符号位)。若一直无符号右移,数字最终会变为0。

浙公网安备 33010602011771号