java运算符及运算符的优先级

13 阅读3分钟

运算符

  • 在java中我们经常使用运算符号,这些运算符我们可以将他们分为算术运算符和逻辑运算符

算术运算符

+ 加 - 减  * 乘 / 除 % 取余
  • 在python中 x == (x//y) *y + (x % y)
    • 即为:被除数 == 地板除* 除数 + 余数
      地板除向下取整
  • 而在java中地板除(除法)是直接截取整数部分,所以
    -7 % 3 == -1
    因为: 是截取小数所以 -7 // 3 == -2
    -7 ==(-7/3)_3 +(-7%3) == -2_3 + (-7 % 3)
    得:
    -7 == -6 + (-7 % 3)
    最后得:
    -7 % 3 == -1

赋值运算符

=

逻辑运算符

  • !(逻辑非):一元运算符,取反。!true为 false,!false为 true。
  • &和 &&(逻辑与):两边都为 true,结果才为 true。
  • &:无论左边结果如何,都会计算右边。
  • &&(短路与):如果左边为 false,则直接返回 false,不再计算右边。效率更高,更常用。
  • |和 ||(逻辑或):只要有一边为 true,结果就为 true。
  • |:无论左边结果如何,都会计算右边。
  • ||(短路或):如果左边为 true,则直接返回 true,不再计算右边。效率更高,更常用。
&  |   &&   || 

boolean b = !(x < 0);  //取反操作、非(一元运算符)  
  
true && true //结果为ture  
true && false //结果为false  
false && false //结果为fase  
  
true || true //结果为ture  
true || false //结果为true  
false || false //结果为fase

条件运算符

  • 又叫三元运算符
  • 记住一真原则
条件? 条件成立返回结果:条件不成立返回结果

单目运算符

+ 表示正数  - 表示负

自增自减运算符号

  • i++ 在表达式计算完之后再做自增操作
  • ++i 是在表达式计算之前就做自增操作
++ --
//i++ 在表达式计算完之后再做自增操作  
//++i 是在表达式计算之前就做自增操作  
  
sum += number; //等同于 sum = sum + number;  
//同样还有 -= *= /= 都是一样的用法

关系运算符号

  • 关系成立返回True
  • 关系不成立返回False
优先级高> <  <= >=               优先级低==  !=
  • 需要注意的是,两个不同类型的变量不能比较大小,比如:
System.out.println(3 == 4 == false)  
/*这段代码可以通过编译,因为3 == 4 先返会布尔值,false,false == false 两个布尔值比较,java编译器是允许的,这里返回True*/
System.out.println(true == 3 == 4)
//这段代码无法通过编译,因为这段代码先运行true == 3,而在java中不同类型的值是不能进行比较的
Ststme.out.println(3 == true < false) 
//同理这段代码也是不能运行的 3 == true无法通过编译,布尔值不能和整型进行比较
  • 在使用比较运算符时,也要关注浮点数精度缺失
System.out.println(0.1 == (1.3 - 1.2))
//这里因为计算1.3-1.2精度缺失了 所以会打印false
  • 如果我们希望用java比较两个浮点数那么使用相减之后是否等于某个数,我们可以做减法并取绝对值,然后再去比较一个特别小的数,如果比这个特别小的数还要小,那么就认为这两个浮点数相减之后就是等于某个数
boolean b = math.abs(0.1 - (1.3 - 1.2)) < 0.000001
System.out.prinln(b)

运算符优先级

image.png

  • 从高到低简单来概括就是:
    括号 -> 单目 ->位逻辑 -> 自增自减 -> 算术 -> 位运算 -> 关系运算 -> 逻辑运算 -> 三元运算符 -> 赋值

53ab4d9315bfd367fbe7403d0c5670aa03c1d2cf.jpg@1256w_2718h_!web-article-pic.webp

53ab4d9315bfd367fbe7403d0c5670aa03c1d2cf.jpg@1256w_2718h_!web-article-pic.webp