算数运算符
操作符 | 描述 | 操作 |
---|
+ | 加法运算 | 4 + 4得8 |
- | 减法运算 | 4-4得0 |
* | 乘法运算 | 4*4得16 |
/ | 除法运算 | 4/4得1 |
% | 取余数 | 4%4得0(4/4的余数是0) |
++ | 自增1 | 4++或++4都得5 |
– | 自减1 | 4–或--4都得3 |
举例
public class Test{
public static void main(String[] args){
int i1 = 10;
i1++;
int i2 = 10;
++i2;
int i3 = 10;
int i4 = i3++;
int i5 = 10;
int i6 = ++i5;
int i7 = 10;
i7 = i7++;
int i8 = 10;
i8 = ++i8;
int i9 = 10;
int i10 = i9++ + ++i9;
}
}
关系运算符
运算符 | 描述 | 操作 |
---|
== | 判断两个操作数是否相等,相等为真 | 1==2,false |
!= | 判断两个操作数是否相等,不等为真 | 1!=2,true |
> | 左数是否大于右数 | 1>2,false |
< | 左数是否小于右数 | 1<2,true |
>= | 左数是否大于等于右数 | 1>=2,false |
<= | 左数是否小于等于右数 | 1<=2,true |
位运算符
运算符 | 描述 | 操作 |
---|
& | 与运算,都为真时才真 | 1&2得0,即0000 0001&0000 0010得0 |
| | 或运算,都为假时才假 | 1&2得3,即0000 0001|0000 0010得0000 0011 |
^ | 异或,同假异真 | 1^2得3,即0000 0001^0000 0010得0000 0011 |
~ | 按位取反 | ~1得-2 |
<< | 按位左移,低位补零 | 1<<2得4 |
>> | 按位右移,正数高位补0,负数补1 | 1>>2得0 |
>>> | 无符号右移,不论正负,高位补零 | 1>>>2得0 |
举例
3&2
0000 0011
0000 0010
= 0000 0010 全真为真
3|2
0000 0011
0000 0010
= 0000 0011 全假为假,有一个是真则为真
3^2
0000 0011
0000 0010
= 0000 0001 相同为假,不同为真
~3
0000 0011
取反: 1111 1100
10进制:取反减1
3 -> (-3 -1) -> -4
所以~3 = -4
异或进行不产生变量的交换
异或运算符可以实现两数交换,不产生新变量
异或性质:
a ^ a = 0
a ^ 0 = a
如:
int a = 12;
int b = 13;
a = a ^ b;
b = a ^ b;
a = a ^ b;
逻辑运算符
操作符 | 描述 | 操作 |
---|
&& | 逻辑与,会发生短路 | 1&&0得0 |
|| | 逻辑或,会发生短路 | 1||0得1 |
! | 逻辑非 | !(1&&0)得1 |
逻辑与&&和按位与&比较
- 含义不同
按位与运用二进制运算,逻辑与比较符号两边的真假输出逻辑结果 - 运算法则不同
按位与会判断所有表达式,逻辑与如果第一个表达式不成立,就会短路(后边就不判断了) - 输出不同
按位与输出结果为数值,逻辑与输出结果为boolean值
赋值运算符
条件运算符
三元表达式
表达式?成立的值:不成立的值
String a = 1>2?"是":"否";
其他运算符
instanceof运算符
用于判断对象是否是一个特定的类型
对象 instanceof 类
String str = "小明";
System.out.print(str instanceof String);
System.out.print(str instanceof Integer);
结尾
此篇是我翻阅菜鸟教程时,对不太容易理解的地方做出的解释。第一次写博客,有啥问题请多多指教。