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。

 

posted @ 2022-08-11 17:13  hefuhao  阅读(40)  评论(0)    收藏  举报