Java 运算符优先级以及一些小题

时间:2023-02-26 15:52:09

Java 运算符优先级以及一些小题

运算符优先级

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)