Java运算符优先级和结合性

问题
如下代码运行结果是啥?

package day06;

public class YzcOperatorTest {
    public static void main(String[] args) {
        int a=1,b=2;
        boolean flag = a

运算符优先级

该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级16的优先级最低。


Java运算符优先级和结合性_第1张图片
image.png

运算符的结合性

相同优先级的运算符在同一个表达式中,且没有括号的时候,运算符和操作数的结合方式,通常有从左到右结合和从右到左结合两种方式。
比如:
表达式a+b+c
+是从左向右结合(左结合)的,那么该表达式被解析为 (a+b)+c

表达式a=b=c
=是从右向左结合(右结合)的,那么该表达式被解析为a=(b=c)

表达式a > b ? b > c ? 1 : 0 : 2
?:是从右向左结合(右结合)的,那么该表达式被被解析为 a > b ? (b > c ? 1 : 0) : 2

参考资料

[01] 运算符的结合性
https://www.cnblogs.com/softwaretesting/archive/2011/08/16/2139068.html
[02] Java运算符优先级
https://www.cnblogs.com/zjfjava/p/5996666.html

你可能感兴趣的:(Java运算符优先级和结合性)