操作符:1.赋值操作符
用(+= ,^=...不会改变类型,如果用 = 会进行隐式转换类型)
short x = 0;
int i = 123456;
x += i;//编译通过
x= x + i;//编译错误
注意:复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型
只适用整型,浮点型,字符型。比较结果只有false和true
instanceof:判断一个引用类型所引用的对象是否是同一个类的实例,比较结果也 是false和true(少用该操作符!) (Object类是所有类的父类)
3.移位操作符
不可用于浮点型,boolean型
>> 右移 eg:12 >> 1(1100(2)右移一位) -12(00001100(原码)-->取反 11110011-->加一 11110100(补码)-->右移一位再用符号位补齐 (符号为正补0,反之补1) -->11111010(补码)-->10000110(原 码)--(-6))
计算机内部运算是用补码进行
注意:计算机中,数都以补码的形式存放,正数的补码是其本身,负 数的补码是其绝对值取反加1;
>>>无符号右移:不管正负,简单补0就行
^ (异或) &(与) ~(取反) |(或)
逻辑运算符:&& || & |
短路运算符:&& || (可以提高效率)
非短路运算符:& |
&既可以用作位运算,又可以用作逻辑运算。
&&只能用作逻辑运算,具有短路的特点,第一个布尔表达式的结果如果能决定整个逻辑运行的结果,则后面的布尔表达式不再运算
原文:https://www.cnblogs.com/wskb/p/10786118.html