Java运算符优先级

简介: Java运算符优先级
优先级 运算符 结合方向 描述 目数
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等价于下述示例:
在这里插入图片描述
输出结果:

在这里插入图片描述

目录
相关文章
|
2月前
|
Java
Java运算符
Java运算符
49 12
|
3月前
|
Java 测试技术 数据处理
Java零基础教学(17):Java运算符详解
【8月更文挑战第17天】Java零基础教学篇,手把手实践教学!
64 4
|
24天前
|
算法 Java 测试技术
🌟Java 零基础 | 详解 单目运算符
【10月更文挑战第14天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
33 7
|
26天前
|
Java 测试技术 开发者
🌟Java 零基础 | 深入理解三目运算符
【10月更文挑战第13天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
18 3
|
26天前
|
Java 测试技术 开发者
🌟Java零基础-Lambda运算符详解 🌟
【10月更文挑战第12天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
22 1
|
1月前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
50 4
|
1月前
|
Java Linux 调度
Java线程的优先级详解
Java线程的优先级机制允许开发者根据程序需求为线程设定不同优先级,范围通常在1到10之间,默认优先级为5。高优先级线程在执行时通常会得到更多的CPU时间,但这并不意味着低优先级线程会被完全忽略。系统资源分配仍然取决于具体的调度策略。理解线程优先级有助于优化多线程应用的性能。
|
1月前
|
安全 Java 测试技术
🌟 Java 零基础 | 详解 instanceof 运算符
【10月更文挑战第1天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
29 1
|
1月前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
39 3
|
1月前
|
存储 算法 Java
【用Java学习数据结构系列】用堆实现优先级队列
【用Java学习数据结构系列】用堆实现优先级队列
29 0