https://java-er.com/blog/priority-java-operation/
Java 的运算符优先级
算术运算符优先级较高,关系和逻辑运算符优先级较低。
多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。
类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 !、+、-、~、++、– 从右到左
乘性 、/、% 左到右
加性 + – 左到右
移位 >> >>> << 左到右
关系 <、<=、>、>=、instanceof 左到右
相等 == != 左到右
按位与 & 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 || 左到右
条件 ?: 从右到左
赋值 =、+=、-=、=、/=、&=、|=、^=、~=、«=、»=、>>>= 从右到左
逗号 , 左到右
举个例子
(a+b*c)/5
这个例子很简单就是个数学公式
int a = 5;int b = 2;int c = 3;
if(a+5==10 || b==1 && c==0){
System.out.println(true);
}
这个判断的意思是
- 条件1 a+5 == 10
- 条件2 b==1
- 条件3 c==0
- 判断条件2和3 形成条件4
- 条件4 和条件1 联合判断
如果修改下
if( (a+5 == 10) || (b==1 && c==0) )
是不是容易看多了。
当无法确定优先级的时候,可以用()来强行改变优先级
在实际的java编程中,建议适当使用()来让程序容易读一些,并不是每个人需要强行记住那么多优先级判断
来源:51CTO
作者:yuexiaosheng
链接:https://blog.51cto.com/yuexiaosheng/2472150