Java运算符优先级和结合性

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

package day06;

public class YzcOperatorTest {
    public static void main(String[] args) {
        int a=1,b=2;
        boolean flag = a<b||b<a&&a+b<0;
        System.out.println(flag);//true
    }
}

运算符优先级

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,208评论 0 13
  • 前言: 最近在学习javascript中数据类型、运算符,以及运算符优先级等相关基础知识,相对简单、基础但也很重要...
    饥人谷_远方阅读 795评论 0 3
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    许先生__阅读 624评论 0 3
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    徵羽kid阅读 715评论 0 0
  • 数组 在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于...
    南山码农阅读 211评论 0 0