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