java中运算符优先级的梳理

本文详细解析了Java中各种运算符的优先级及其结合性,包括括号、数组下标、方法调用、算术运算、移位运算、关系运算、逻辑运算及赋值运算等,并通过实例说明如何正确理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

经常使用的赋值=,以及派生出来的复合赋值运算符,都是从右到左的运算顺序,这就是右结合符号。不少参考书里都有个表,有的时候很多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循环的表达式()中的逗号,起的是隔离的作用!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值