Java运算符优先级

本文详细介绍了Java中的运算符优先级和结合方向,包括方法调用、一元运算符、乘除取模、加减运算、位移、比较、等于、按位运算、逻辑运算及条件运算符。通过实例解析了正负号的特殊用法,以及按位非运算的原理。此外,还通过代码展示了运算符优先级在实际中的应用,帮助开发者理解并正确使用Java运算符。
摘要由CSDN通过智能技术生成
优先级运算符结合方向描述目数
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);
    }
}

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

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

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

2.按位非/取补运算

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

二.综合举例:

在这里插入图片描述

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MrYuShiwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值