Java 运算符优先级以及一些小题
运算符优先级
总结下常见的(同级省略)
++ > * == % > + > 位移 > == > =
一些小题
- 5 == 5.0
ans: true,因为会发生类型转换,5自动向上转化为double与5.0对应,所以相等。 - int a = 1; int result = a+++3<<2;
ans:16 - int a = 2; int result = (a++ > 2)?(++a):(a+=3);
ans:6 - Integer a = 34556; Integer b = 34556; boolean result = a == b;
结果:false
分析:== > = 但是,a == b用于判断是否为同一个对象,连个Integer并非同一个对象,那么自然就是false
TIP:String s = “123”; String s2 == “123”; s == s2 true,因为指向同一个字符串缓冲区的123; - int result = 0xff >> 1
ans: 0111_1111(因为符号为0)