java中运算符优先级的梳理

老生常谈,运算符的优先级,除了右结合的运算符之外,同级的运算符要按照从左到右的顺序依次计算。

什么是右结合的运算符呢?

经常使用的赋值=,以及派生出来的复合赋值运算符,都是从右到左的运算顺序,这就是右结合符号。不少参考书里都有个表,有的时候很多jb破书,炫耀很多一系列的运算符,弄一大堆在一个大……长串的表达式上,讲解这个顺序那个顺序的,jb毛线用处都没有,纯粹就是占据字数的sb,不解释,我把这些运算符的优先级梳理记忆和总结下;

1、众所周知,一般情况下有括号()就是级别最高的!先算括号里的,比如;

System.out.println(2 2 / 2); System.out.println((2 2) / 2);

打印;3和2

2、然后看表,最高级别的是数组下标【】、对象或者方法的调用 . 、方法的参数调用运算符(),这些都是从左到右的。

3、记住一点,正负号,非!,按位取反~,自增,自减,强制类型转换,new这是一个级别的,从左到右。

4、然后是最熟悉的加减乘除,按照数学的规则,先乘除后加减,同级的按照顺序,只不过这里多了个模运算%,和乘除一个级别的而已。也就是先乘除模,再加减而已。

5、然后是移位的,左移,右移,无符号右移是一个级别的。

6、关系运算符,也就是比较大小的,外加个instantof!一个级别的。

7、最后的判等==,和不等!=,很好理解,都是先算了,再判等吧……结合常识。

8、然后就是很好理解的;与>异或>或>双与>双或>三元,注意,三元运算符是从右到左的顺序。其余的是左到右。细细的感觉下,就是这样!

9、最后就是赋值类的包括复合的,也是从右到座的顺序!

int a1 = 10; int b1 = 11; System.out.println(a1 = b1 = 3);

等价于

int a1 = 10; int b1 = 11; System.out.println(a1 = (b1 = 3));

打印结果是24

注意!java里是没有逗号运算符的,在fou循环的表达式()中的逗号,起的是隔离的作用!

老生常谈,运算符的优先级,除了右结合的运算符之外,同级的运算符要按照从左到右的顺序依次计算。

什么是右结合的运算符呢?

经常使用的赋值=,以及派生出来的复合赋值运算符,都是从右到左的运算顺序,这就是右结合符号。不少参考书里都有个表,有的时候很多jb破书,炫耀很多一系列的运算符,弄一大堆在一个大……长串的表达式上,讲解这个顺序那个顺序的,jb毛线用处都没有,纯粹就是占据字数的sb,不解释,我把这些运算符的优先级梳理记忆和总结下;

1、众所周知,一般情况下有括号()就是级别最高的!先算括号里的,比如;

System.out.println(2 2 / 2); System.out.println((2 2) / 2);

打印;3和2

2、然后看表,最高级别的是数组下标【】、对象或者方法的调用 . 、方法的参数调用运算符(),这些都是从左到右的。

3、记住一点,正负号,非!,按位取反~,自增,自减,强制类型转换,new这是一个级别的,从左到右。

4、然后是最熟悉的加减乘除,按照数学的规则,先乘除后加减,同级的按照顺序,只不过这里多了个模运算%,和乘除一个级别的而已。也就是先乘除模,再加减而已。

5、然后是移位的,左移,右移,无符号右移是一个级别的。

6、关系运算符,也就是比较大小的,外加个instantof!一个级别的。

7、最后的判等==,和不等!=,很好理解,都是先算了,再判等吧……结合常识。

8、然后就是很好理解的;与>异或>或>双与>双或>三元,注意,三元运算符是从右到左的顺序。其余的是左到右。细细的感觉下,就是这样!

9、最后就是赋值类的包括复合的,也是从右到座的顺序!

int a1 = 10; int b1 = 11; System.out.println(a1 = b1 = 3);

等价于

int a1 = 10; int b1 = 11; System.out.println(a1 = (b1 = 3));

打印结果是24

注意!java里是没有逗号运算符的,在fou循环的表达式()中的逗号,起的是隔离的作用!


相关文章

  • Java入门(5) JAVA语言基本语法
  • 摘要 本章中主要通过详尽的实例,配以合理的练习,让读者了解.掌握Java语言的基本语法.通过本章的学习,读者应能学会:Java程序的结构.变量.方法.运算符.表达式等,以便今后编写Java程序时更加得心应手. (2002-08-29 14: ...查看


  • 表达式运算算法的实现
  • 专 业:班 级:指导教师:姓 名:学 号: 目 录 一.设计思想---------------------.01 二.算法流程图--------------------.01 三.源代码----------------------.04 四 ...查看


  • 企业面试题集绵
  • (一) Java中有没有goto关键字? (二) 基本数据类型有哪些?String是不是基本数据类型? 基本数据类型:byte, char, short, int, long, float, double, boolean String不属 ...查看


  • Excel公式中的运算符 1
  • Excel 公式中的运算符 2007-01-16 00:12 公式是Excel 中的重要工具,它使我们的工作高效灵活(函数实际上也是作为公式的一部分来用的) .运算符则是公式中各操作对象的纽带,但你知道Excel 中运算符有多少呢?它们的优 ...查看


  • java逻辑运算符
  • 普科培训 2012-2-17 第三章 java 程序设计概述 输入一个任意的数字,并获得其反向结果 import java.util.Scanner; public class ChangeNum { public static void ...查看


  • Excel 公式中的运算符
  • Excel 公式中的运算符 运算符在公式运算中占有重要的地位,可以指明用户要完成什么运算,以及公式元素的计算类型.由于公式中运算符存在的位置及类型不同,产生的结果也有所差别.因此,在应用公式之前,学习不同类型的运算符以及运算符的优先级显得尤 ...查看


  • infosys面试总结
  • 1. 作用域public,private,protected,以及不写时的区别 区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly ...查看


  • (强化卷)强化卷电算化答案
  • <会计电算化>考前强化试卷 一.单选题 1. 下列叙述错误的是( ). A. 会计电算化有狭义和广义之分 B. 相对于会计电算化而言,会计信息化是一次质的飞跃 C. 会计信息化系统是企业管理信息系统的一个重要子系统 D. 会计电 ...查看


  • 高中信息技术VB知识要点
  • 高中信息技术算法与程序设计(VB)知识要点 学习程序设计的方法:1.多阅读程序 2.尝试独立编写程序 3.上机验证自己设计的程序 一. 程序设计基础知识 1. 程序设计语言 程序设计语言:人与计算机交流的语言. 程序:是人们用计算机语言编制 ...查看


热门内容