语雀原文链接
文章目录
- 1、算术运算符
- 2、关系运算符
- 3、逻辑运算符
- 4、赋值运算符
- 5、移位运算符
- 6、位运算符(二进制位进行运算)
- 7、条件运算符:三目运算符
- 8、运算符的优先级
1、算术运算符
- +:加法
- -:减法
- *:乘法
- /:除法取商
- %:取余取模
- ++:自增运算符
- i++:先使用i的值,再对i做增1的操作
- ++i:先对i做增1的操作,再使用i的值
- –:自减运算符
- i–:先使用i的值,再对i做减1的操作
- –i:先对i做减1的操作,再使用i的值
- 整型和浮点型的运算结果是浮点型
int a = 6;
int b = 4;
System.out.println( a+b);//10
System.out.println( a-b);//2
System.out.println( a/b);//1
System.out.println( a%b);//2
System.out.println(a++);//6
System.out.println(a);//7
System.out.println(++a);//8
// 整型和浮点型的结果是浮点型
// 以下代码报错:从double转换到float可能会有损失
float f = 6 * 1.0;
- 代码例子
int i=10;
i++;
System.out.println("i值是:"+i);//11
int j=20;
j++;
System.out.println("j值是:"+j);//21
int m=10;
int n=m++;
System.out.println("m值是:"+m);//11
System.out.println("n值是:"+n);//10
int x=10;
int y=++x;
System.out.println("x值是:"+x);//11
System.out.println("y值是:"+y);//11
2、关系运算符
int a = 10;
int b = 5;
boolean c = a==b;
System.out.println(a==b);// false
System.out.println(a!=b);// true
System.out.println(a<b);// false
System.out.println(a>b);// true
System.out.println(a<=b);// false
System.out.println(a>=b);// true
3、逻辑运算符
- &&:第一个为false,右边就不计算了,直接返回false ;
- &:不管如何左右都计算
- || :第一个为true 右边就不计算了,直接返回true;
- | :不管如何左右都计算
4、赋值运算符
int b = 4;
b+=4;//b=b+4 ->8
b-=4;//b=b-4 ->4
b*=4;//b=b*4 ->16
b/=4;//b=b/4 ->4
b%=4;//b=b%4 ->0
5、移位运算符
- <<:向左移位(a<<3左移3位,低位补0,扩大2^3倍)
-
:带符号向右移位(a>>3右移3位,高位补原符号位,缩小2^3倍)
-
:无符号向右移位(a>>>3右移3位,高位补0,缩小2^3倍)
System.out.println(3 << 1);//6
System.out.println(-3 << 1);//-6
System.out.println(8 >> 1);//4
System.out.println(-8 >> 1);//-4
// 原码8 = 00000000 00000000 00000000 00001000
// 反码 = 111111111 111111111 111111111 11110111
// 补码 = 111111111 111111111 111111111 11111000
// 无符号右移一位,高位补0 01111111 111111111 111111111 11111100 = 2147483644
System.out.println(-8 >>> 1);//2147483644
6、位运算符(二进制位进行运算)
int a = 0b11;
int b = 0b01;
int c = a&b;//0b01
System.out.println(~a);//0
7、条件运算符:三目运算符
- 表达式1?表达式2:表达式3
int aa = 25;
int bb = 44;
int result = aa>bb?aa:bb;
8、运算符的优先级
- 优先级比较复杂,直接加()解决优先级问题