算术运算符
- 加法运算符(+):用于将两个值相加。
- 减法运算符(-):用于从一个值中减去另一个值。
- 乘法运算符(*):用于将两个值相乘。
- 除法运算符(/):用于将一个值除以另一个值。
- 取模运算符(%):用于计算两个值相除后的余数。
运算符 | 描述 | 示例 |
---|---|---|
+ | 相加 | 2+3=5 |
- | 相减 | 5-2=3 |
* | 相乘 | 2*3=6 |
/ | 相除 | 6/3=2,5/2=2(整数相除) |
% | 取余 | 5%2=1 |
++ | 自增运算符,在变量后面表示先使用变量再执行加 1 操作 | int i=2; i++; // i = 3 |
-- | 自减运算符,在变量后面表示先使用变量再执行减 1 操作 | int j=3; j--; // j = 2 |
++ | 自增运算符,在变量前面表示先执行加 1 操作再使用变量 | int i=2; ++i; // i = 3 |
-- | 自减运算符,在变量前面表示先执行减 1 操作再使用变量 | int j=3; --j; // j = 2 |
int a = 5; int b = 2; // 算术运算符 System.out.println(a + b); // 输出:7 System.out.println(a - b); // 输出:3 System.out.println(a * b); // 输出:10 System.out.println(a / b); // 输出:2 System.out.println(a % b); // 输出:1 int i = 5; System.out.println(i++); // 输出:5,i的值变为6 System.out.println(++i); // 输出:7,i的值为7 System.out.println(i--); // 输出:7,i的值变为6 System.out.println(--i); // 输出:5,i的值为5
关系运算符
- 相等运算符(==):用于检查两个值是否相等。
- 不等运算符(!=):用于检查两个值是否不相等。
- 大于运算符(>):用于检查一个值是否大于另一个值。
- 小于运算符(<):用于检查一个值是否小于另一个值。
- 大于等于运算符(>=):用于检查一个值是否大于或等于另一个值。
- 小于等于运算符(<=):用于检查一个值是否小于或等于另一个值。
运算符 | 描述 | 示例 |
---|---|---|
== | 检查两个操作数是否相等,如果是则条件为真 | 2==3为假 |
!= | 检查两个操作数是否不相等,如果不是则条件为真 | 2!=3为真 |
> | 检查左操作数是否大于右操作数,如果是则条件为真 | 2>3为假 |
< | 检查左操作数是否小于右操作数,如果是则条件为真 | 2<3为真 |
>= | 检查左操作数是否大于等于右操作数,如果是则条件为真 | 2>=3为假 |
<= | 检查左操作数是否小于等于右操作数,如果是则条件为真 | 2<=3为真 |
int a = 5; int b = 2; // 关系运算符 System.out.println(a == b); // 输出:false System.out.println(a != b); // 输出:true System.out.println(a > b); // 输出:true System.out.println(a < b); // 输出:false System.out.println(a >= b); // 输出:true System.out.println(a <= b); // 输出:false
位运算符
- 按位与运算符(&):将两个数的二进制进行按位与操作。
- 按位或运算符(|):将两个数的二进制进行按位或操作。
- 按位异或运算符(^):将两个数的二进制进行按位异或操作。
- 按位取反运算符(~):对一个数的二进制进行按位取反操作。
- 左移运算符(<<):将一个数的二进制向左移动指定位数。
- 右移运算符(>>):将一个数的二进制向右移动指定位数。
- 无符号右移运算符(>>>):将一个数的二进制向右移动指定位数,空出的位以零填充。
运算符 | 描述 | 示例 |
---|---|---|
& | 按位与运算符(两个位都为1才返回1) | 0011 1100 & 0000 1101 结果:0000 1100 |
| | 按位或运算符(两个位都为0才返回0) | 0011 1100 | 0000 1101 结果:0011 1101 |
^ | 异或运算符(两个位相同则返回0,不同则返回1) | 0011 1100 ^ 0000 1101 结果:0011 0001 |
~ | 取反运算符(0变为1,1变为0) | ~0011 1100 结果:1100 0011 |
<< | 左移运算符(将二进制位左移指定的位数,后面补0) | 0011 1100 << 2 结果:1111 0000 |
>> | 右移运算符(将二进制位右移指定的位数,前面补符号位) | 0011 1100 >> 2 结果:0000 1111 |
>>> | 无符号右移运算符(将二进制位右移指定的位数,前面补0) | 0011 1100 >>> 2 结果:0000 1111 |
... | JDK1.7新增的二进制字面值,可以用下划线分割,增强可读性 | int a = 0b1010_1100; |
int a = 60; int b = 13; // 位运算符 System.out.println(a & b); // 输出:12,即 0011 1100 & 0000 1101 结果:0000 1100 System.out.println(a | b); // 输出:61,即 0011 1100 | 0000 1101 结果:0011 1101 System.out.println(a ^ b); // 输出:49,即 0011 1100 ^ 0000 1101 结果:0011 0001 System.out.println(~a); // 输出:-61,即 ~0011 1100 结果:1100 0011 System.out.println(a << 2); // 输出:240,即 0011 1100 << 2 结果:1111 0000 System.out.println(a >> 2); // 输出:15,即 0011 1100 >> 2 结果:0000 1111 System.out.println(a >>> 2); // 输出:15,即 0011 1100 >>> 2 结果:0000 1111
逻辑运算符
- 按位与运算符(&):将两个数的二进制进行按位与操作。
- 按位或运算符(|):将两个数的二进制进行按位或操作。
- 按位异或运算符(^):将两个数的二进制进行按位异或操作。
- 按位取反运算符(~):对一个数的二进制进行按位取反操作。
- 左移运算符(<<):将一个数的二进制向左移动指定位数。
- 右移运算符(>>):将一个数的二进制向右移动指定位数。
- 无符号右移运算符(>>>):将一个数的二进制向右移动指定位数,空出的位以零填充。
运算符 | 描述 | 示例 |
---|---|---|
&& | 逻辑与运算符,当两个操作数都非零返回 true | (5>3) && (8<5) 返回 false |
|| | 逻辑或运算符,只要有一个操作数非零返回 true | (5>3) || (8<5) 返回 true |
! | 逻辑非运算符,用来反转操作数的逻辑状态 | !(5>3) 返回 false,即为反转的值 |
int a = 5, b = 2, c = 8; // 逻辑运算符 System.out.println((a > b) && (c > a)); // 输出:true System.out.println((a > b) || (c < b)); // 输出:true System.out.println(!(a > b)); // 输出:false
赋值运算符
-
- 简单赋值运算符(=):用于将右侧的值赋给左侧的变量。
- 复合赋值运算符(+=、-=、*=、/=、%=):用于进行简化的赋值操作。
运算符 | 描述 | 示例 |
---|---|---|
= | 简单的赋值运算符,将右操作数的值赋给左侧操作数 | int a = 5; a = 6; |
+= | 相加后再赋值 | int a = 5; a += 3 |
-= | 相减后再赋值 | int a = 5; a -= 3 |
*= | 相乘后再赋值 | int a = 5; a *= 3 |
/= | 相除后再赋值 | int a = 5; a /= 3 |
%= | 取余后再赋值 | int a = 5; a %= 3 |
赋值运算符 运算符 描述 示例 = 简单的赋值运算符,将右操作数的值赋给左侧操作数 int a = 5; a = 6; += 相加后再赋值 int a = 5; a += 3 -= 相减后再赋值 int a = 5; a -= 3 *= 相乘后再赋值 int a = 5; a *= 3 /= 相除后再赋值 int a = 5; a /= 3 %= 取余后再赋值 int a = 5; a %= 3
条件运算符
运算符 | 描述 | 示例 |
---|---|---|
?: | 根据判断条件返回两个操作数中其中一个 | (5>3) ? "true" : "false"; |
条件运算符 运算符 描述 示例 ?: 根据判断条件返回两个操作数中其中一个 (5>3) ? "true" : "false";
运算符优先级
下面是Java运算符的优先级列表,数字越大优先级越高:
优先级 | 运算符 | 描述 |
---|---|---|
1 | () | 括号(优先级最高) |
2 | ++ -- | 自增、自减 |
3 | ! ~ | 逻辑非、按位取反 |
4 | * / % | 乘、除、取模 |
5 | + - | 加、减 |
6 | >> >>> << | 移位 |
7 | < <= > >= | 关系运算符 |
8 | == != | 相等、不相等 |
9 | & | 按位与 |
10 | ^ | 按位异或 |
11 | | | 按位或 |
12 | && | 短路逻辑与 |
13 | || | 短路逻辑或 |
14 | ?: | 三目运算符 |
15 | = += -= *= /= %= &= | 赋值、复合赋值(顺序由右往左) |
16 | , | 逗号运算符(顺序由左往右,最低优先级) |
int a = 5, b = 2, c = 8; // 运算符优先级 int result = a + b * c; // 先进行乘法运算,再进行加法运算 System.out.println(result); // 输出:21 result = (a + b) * c; // 先进行加法运算,再进行乘法运算 System.out.println(result); // 输出:56
标签:Java,int,System,运算符,按位,println,out From: https://www.cnblogs.com/anzhizhumo/p/17752962.html