优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。
Java
运算符
|
结合性
|
---|---|
[ ] . ( ) (方法调用)
|
从左向右
|
! ~ ++ — +(一元运算) -(一元运算)
|
从右向左
|
* / %
|
从左向右
|
+ –
|
从左向右
|
> >>>
|
从左向右
|
< >= instanceof
|
从左向右
|
== !=
|
从左向右
|
&
|
从左向右
|
^
|
从左向右
|
|
|
从左向右
|
&&
|
从左向右
|
||
|
从左向右
|
?:
|
从右向左
|
=
|
从右向左
|
一个特殊的例子:
public class stlye{public static void main(String[] args){int a=10,b=6;System.out.println(“改变之前的数:a=”+a+”,b=”+b);a-=b++;System.out.println(“改变之后的数:a=”+a+”,b=”+b);}}
运算结果为:
改变之前的数:a=10,b=6
改变之后的数:a=4,b=7
因为b++运算中先执行++,再返回后置++运算表达式(b++)的返回值(6)给-=运算符。
在这个程序中a-=b++等于a=a-b++=10-6,所以a=4。
简单记优先顺序从左到右:!, 算术运算符 , 关系运算符 , && , || ,赋值运算符=
非,与,或
转载请注明出处:https://www.onexin.net/java-operator/