1. +号可以表示数字运算、字符串拼接、字符串转换(String+一个非String)的功能
2. 逻辑操作符的短路——是指计算一串逻辑运算时如果前面部分已经满足了要求,后面的部分可能不再计算
3.
int a = 0xf;
char b = 0xf;
byte c = 0xf;
short d = 0xf;
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toBinaryString(b));
System.out.println(Integer.toBinaryString(c));
System.out.println(Integer.toBinaryString(d));
long e = 0177;
float f = 0177;
double g = 0177;
System.out.println(Double.toHexString(e));
System.out.println(Double.toHexString(f));
System.out.println(Double.toHexString(g));
结果:
4. 按位操作符
&&、||、==、!=是逻辑运算符;&、|、^、~是位运算符,对二进制位进行操作
其中,&(全1则1)、|(有1则1)、^(异或,相同为1,不同为0)、~(1变0,0变1)
&、|、^是二元操作符,可以与=结合使用,变为&=、|=、^=
5.移位操作符
<<、>>(有符号,正高位补0,负补1)、>>>(无符号,高位补0),只对整型操作,可以与=结合使用
若对char、byte等操作会转为整型,结果也是整型
X<<Y 时,Y只有低五位有用(Y会转化成2进制,2^5=32 int只有32位,若移动超过32位,信息全丢失)
6.break和continue中的label
label紧跟for语句,continue label时,跳到label绑定的循环继续执行,但不会再执行初始化语句,该自增自增;break label彻底终止循环,将不再进入循环体。
7.switch
记得case后加break才能跳出;
switch选择因子必须是char、byte、int、short、enum、String(JDK1.7以后)类型。