(1)面试题 short s = 2; s = s + 2; s += 2; 哪一行会报错?为什么? 第二行报错因为:+= 有一个自动强制转换的过程 (2)运算符 System.out.println(true^true); //false System.out.println(false^false); //false ^运算符:异或 左边 右边 结果 true true false false true true true false true false false false 简单的说:相同则false,不同则true。这里写代码片 &&:短路与 &:与 区别:&&是左边为false了,右边就不操作了。 &左边是false,右边还得继续操作。 ||:短路或 |:或 区别:||是左边为true了,右边就不操作了。 |左边是true,右边还得继续操作。 (3)位运算符 &,|,^,~,>>,>>>,<< 位运算,要求我们先把数据转换成二进制。 System.out.println(4&3); //运行结果:0 //分析:4的二进制是100 ,3的二进制是011,进行与运算就是000 //与运算符用符号“&”表示,其使用规律如下: //两个操作数中位都为1,结果才为1,否则结果为0 System.out.println(4|3); //运行结果:7 //或运算符用符号“|”表示,其运算规律如下: //两个位只要有一个为1,那么结果就是1,否则就为0 System.out.println(4 ^ 3); //运行结果:7 //异或运算符是用符号“^”表示的,其运算规律是: //两个操作数的位中,相同则结果为0,不同则结果为1。 System.out.println(~4); //运行结果:-5 //非运算符用符号“~”表示,其运算规律如下: //如果位为0,结果是1,如果位为1,结果是0