基本运算符
运算符
- JAVA语言支持入下运算符。
%:余数
!=:不等于
&&:and
||:or
!:not
二元运算符
整数默认为int类型,按类型优先级自动转换,下图说明了short加byte的值自动变成了int。
关系运算符返回的结果必然是布尔值
一元运算符
自增,自减及幂运算
a++–为先赋值后计算
++–a为先计算后赋值
幂运算,最大值,最小值等使用数学工具类计算
逻辑运算符
与(and):&& 或(or):|| 非(not):!(在if的时候会很有用)
短路运算证明了逻辑运算符代码判定出现结果后就不会继续执行后续操作。
位运算符
- &、|、^、~
位运算为二进制的运算,关系如下所示:
A=0011 1100
B=0000 1101
A&B = 0000 1100
A|B = 0011 0010
A^B = 0011 0001
~B = 1111 0010 - <<、>>
假如我要得到16的值
那么可以通过这样的一串代码来实现
public class Demo06 {
public static void main(String[] args) {
System.out.println(2<<3);
}
}
0000 0000 =0
0000 0001 =1
0000 0010 =2
0000 0011 =3
0000 0100 =4
0000 1000 =8
0001 0000 =16
2<<3指的是在二进制中2的1左移三位,因此2<<3的值为16
右移>>同理
简单理解就是<<为乘以2,>>为除以2,2<<3=[(2X2)X2]X2=16
位运算涉及底层代码
三元运算符:?:
x?y:z
如果x==true,则结果为y,否则为z
如图所见,是个简单的类似if的运算符
使操作更简洁的赋值运算符与字符串连接符
- +=与-=
同理,a-=b即为a=a-b - 字符串连接符:””+
+之前有String类型的时候,会对数字进行转换,视为字符连接而不是数值加减
如果是在a+b之后加上String类型则无影响
代码会从左到右判定,会先算左边的a+b再判定+””这个字符串连接符
优先级
()–> 一元运算符 –> 加减乘除