java中运算符优先级的梳理
来源:互联网 发布:守望先锋数据查询 编辑:程序博客网 时间:2024/06/01 08:40
老生常谈,运算符的优先级,除了右结合的运算符之外,同级的运算符要按照从左到右的顺序依次计算。
什么是右结合的运算符呢?
经常使用的赋值=,以及派生出来的复合赋值运算符,都是从右到左的运算顺序,这就是右结合符号。不少参考书里都有个表,有的时候很多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循环的表达式()中的逗号,起的是隔离的作用!
0 0
- java中运算符优先级的梳理
- Java中运算符的优先级
- Java中运算符的优先级
- Java中运算符优先级
- java 运算符的优先级
- java运算符的优先级
- java运算符的优先级
- Java运算符的优先级
- Java运算符的优先级
- java运算符的优先级
- java 运算符的优先级
- Java运算符的优先级
- Java运算符的优先级
- java运算符的优先级
- Java中运算符优先级表
- Java和C中运算符优先级
- 运算符优先级-Java 运算符优先级
- java 运算符优先级
- OpenCV中的内存泄露问题
- NTSTATUS codes(驱动错误码对照表)
- HTML 基础
- 结构
- PHP基础学习第四讲(连接mysql数据库及选择数据库)
- java中运算符优先级的梳理
- 机器学习--基础
- hdoj 1518 Square (DFS + 剪枝)
- unable to create/open lock file
- 一个侧边栏第三方库REFrostedViewController的使用
- 消息认证码(MAC)的实现原理
- x64下void*转int
- 第七周作业——背包问题
- OCP-1Z0-051 第45题 SEQUENCE(序列)的注意事项