目录
🍋1.什么是操作符
🍋2.算术运算符
🍋3.关系运算符
🍋4.逻辑表达式
🍋短路求值
🍋5.位运算符
🍋6.移位运算符
🍋7.条件运算符
🍋8.运算符的优先级
📢1.什么是操作符
运算符是指对操作数进行某种操作的符号,也就是参入运算的符号
根据要操作的操作数不同,可以将它分为单目运算符(一个操作数),双目运算符(两个操作数),还有三目运算符(三个操作数)
在Java中,运算符的种类有算数运算符、关系运算符、逻辑运算符、位运算符、移位运算符、还有条件运算符
📢2.算术运算符
Java中算术运算符包括+(加)、-(减)、*(乘)、/(除)、%(取余)以及组合使用的++(自增)和--(自减)。
其中取余(%),支持小数进行取余(在C语言中只能进行整数取余)
例如:11.5%2的结果为1.5。
📢可以对负数进行取余
public class TestDemo{
public static void main(String[] args) {
System.out.println(10%3);
System.out.println(10%-3);
System.out.println(-10%3);
System.out.println(-10%-3);
}
}
当被除数为正数时,取余的结果就是正数
当被除数为负数时,取余的结果就是负数
也就是说,取余的结果取决于被除数的正负,与除数无关
自增运算符包括前置++(先加加,在使用)与后置++(先使用,再加加)
不同类型的变量相加减,需要强制类型转化
short c=(short)(a+b);但使用自增运算符,是不需要进行强制类型转换的,程序会自动转化为接收的变量类型
a+=b;自减也一样
📢3.关系运算符
关系运算符包括 ==(判断相等) !=(判断不相等) <= >=
关系运算符在判断语句中很常见,不过前提是这些判断表达式必须是布尔表达式
也就是说,表达式的结果要么是true,要么是false
📢4.逻辑表达式
逻辑表达式包括 &&(逻辑与)、||(逻辑或) 、!(逻辑取反)
📢&&(逻辑与)
表达式1 | 表达式2 | 结果 |
真 | 真 | 真 |
真 | 假 | 假 |
假 | 假 | 假 |
📢||(逻辑或)
表达式1 | 表达式2 | 结果 |
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
📢短路求值
按位与、按位或支持短路求值(如果前面一个表达就可以判断结果,程序就不会运行第二个表达式)。
例:(10>20) && (10/0==0)上述表达式,java程序中运行10/0表达式时,会出现报错
但前面表达式的结果为false,就不会运行第二个表达式,最终程序就不会报错
一个&、|符号也能表示逻辑与和逻辑或,如果两边的表达式不是布尔表达式的时候,就是位运算符。但是这样实现的话,就没有短路求值,也就是说,程序会运行所有的表达式。
例:(10>20) & (10/0==0)这样程序就会报错
📢5.位运算符
计算机的数据都是以二进制的形式储存的,位运算符的操作单位也是二进制。
位运算符包括 &、|、~、^
&(按位与):如果数字有一个为 0 则为零,否则为 1
|(按位或):一个是 1 结果就是 1 否则是 0
^(按位异或):如果数字相同则计为 0,如果不相同则计为 1
~(按位取反):相互取反 1->0 0->1
📢6.移位运算符
<<:左移运算符
0000 1011 11
11<<1=>00010110=22
11<<2=>00101100=44
>>:右移运算符(最高位补符号位)
0000 1011 11
11>>1=>0000 0101=5
>>>:无符号右移运算符(忽略了符号位扩展,0补最高位)
📢7.条件运算符
Java中的条件运算符(?:)
<表达式1> ? <表达式2> : <表达式3>
对表达式1进行判断,如果为true,则结果取表达式2的结果
对表达式1进行判断,如果为false,则结果取表达式3的结果
📢8.运算符的优先级
优先级 | 运算符 |
1 | () [ ] . |
2 | ! +(正) -(负) ~ ++ -- |
3 | * / % |
4 | +(加) -(减) |
5 | << >> >>> |
6 | < <= > >= |
7 | == != |
8 | &(按位与) |
9 | ^ |
10 | | |
11 | && |
12 | || |
13 | ?: |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= |
欢迎点赞收藏加关注,如若有问题可以提出来😁😁😁😁