Java运算符优先级

举报
YuShiwen 发表于 2022/03/30 22:50:43 2022/03/30
【摘要】 优先级运算符结合方向描述目数1[ ]、 .、 ( )从左向右方法调用,属性获取2+(正号)、-(负号)、!、~、 ++、 --从右向左一元运算符单目3* 、/ 、%从左向右乘、除、取模(余数)运算双目4+...
优先级 运算符 结合方向 描述 目数
1 [ ].( ) 从左向右 方法调用,属性获取
2 +(正号)-(负号)!~++-- 从右向左 一元运算符 单目
3 */% 从左向右 乘、除、取模(余数)运算 双目
4 +- 从左向右 加、减运算 双目
5 <<>>>>> 从左向右 左移位运算符、带符号右移位运算符、无符号右移位运算符 双目
6 <<=>>=instanceof 从左向右 小于、小于等于、大于、大于等于,判断某对象类型是否属于指定的类型 双目
7 ==!= 从左向右 等于、不等于 双目
8 & 从左到右 按位与 双目
9 | 从左到右 按位或 双目
10 ^ 从左到右 按位异或 双目
11 && 从左到右 短路与 双目
12 || 从左到右 短路或 双目
13 ? : 从右到左 条件运算符 三目
14 =+=-=*=/=%=&=|=^=<<=>>=>>>= 从右向左 混合赋值运算符 双目

一.单目运算符号具体说明:

1.正负号

在这里插入图片描述

正负号可以遵循负负得正的原则,如上图可以写成+-+-+-+-+-正负号相交的方式,不能写成+++++--同符号相连的方式,会报错,如下图:
两正号相连:
在这里插入图片描述

两负号相连:
在这里插入图片描述
代码示例:(偶数个负号为正)

public class DemoTest {
    @Test
    public void demoTest01() {
        int i;
        //-+-+-+-5 有四个负号,最终表示+5
        i = +-+1 + -+-+-+-5;
        System.out.println(i);
    }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出结果:
在这里插入图片描述
代码示例:(奇数个负号为负)

public class DemoTest {
    @Test
    public void demoTest01() {
        int i;
        //-+-+-+5 有三个负号,最终表示-5
        i = +-+1 + -+-+-+5;
        System.out.println(i);
    }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出结果:
在这里插入图片描述

2.按位非/取补运算

在这里插入图片描述
如上图,用二进制表示整型只写出了8位(1个字节),前面的24位(3个字节)没有写出会自动补零,也就是说11111100实际上表示00000000 00000000 00000000 11111100,按位非(或者说取补运算)后输出结果为:
在这里插入图片描述

二.综合举例:

在这里插入图片描述

上述中hasLength方法因为!=的运算符优先级高于&&,所以上述的hasLength等价于下述示例:
在这里插入图片描述
输出结果:

在这里插入图片描述

文章来源: blog.csdn.net,作者:Mr.Yushiwen,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/MrYushiwen/article/details/112617759

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。