运算符用于对单个操作数或两个操作数执行运算。 Java中的运算符可以分为以下几类:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 自增/自减运算符
  • 逻辑运算符
  • 按位运算符
  • 其他运算符

Java 算术运算符

算术运算符用于对两个操作数执行算术运算。

操作员名称描述
+加法添加两个值
-减法一个值减去另一个值
*乘法两个值相乘
/除法将一个值除以另一个值
%取模返回除法运算的余数

示例

Java 赋值运算符

赋值运算符用于将右侧表达式的值分配给左侧操作数。

运算符表达式相当于示例
=a = 5a = 5示例
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
%=a %= ba = a % b
&=a &= ba = a & b更多信息
|=a |= ba = a | b更多信息
^=a ^= ba = a ^ b更多信息
>>=a>>=ba = a>>> b更多信息
>>>=a >>>= ba = a >>> b
<<=a <<= ba = a << b更多信息

注意: >>>= 与 >>= 运算符类似,只不过左侧移入的位始终是零。

Java 比较运算符

比较运算符用于比较两个操作数的值。当值匹配时返回 true,当值不匹配时返回 false。

运算符描述
==等于
!=不等于
>大于
<小于
>=大于或等于
<=小于或等于

示例

Java 自增/自减运算符

自增和自减运算符用于增加和减少变量的值。

操作员名称描述示例
++x预自增将x的值增加1,然后返回x。示例
x++后自增返回x,然后将x的值增加1。
--x预减将 x 的值减 1,然后返回 x。示例
x--后减返回x,然后将x的值减1。

Java 逻辑运算符

逻辑运算符用于组合两个或多个条件。

操作员名称描述
&&AND所有条件成立时返回 true
||OR任意条件成立时返回true
!NOT返回相反的布尔结果

更多信息

Java 位运算符

按位运算符用于对两个操作数执行按位运算。

操作员名称描述更多信息
&AND如果两个操作数中同一位置的两个位均为 1,则返回 1,否则返回 0更多信息
|OR如果两个操作数中同一位置的两个位之一为 1,则返回 1,否则返回 0更多信息
^XOR如果两个操作数中同一位置的两位中只有一位为 1,则返回 1,否则返回 0更多信息
~NOT反转所有位更多信息
>>右移左操作数向右移动右操作数中存在的位数更多信息
>>>右移零此运算符就像 >>运算符,但左侧移入的位始终为零。
<<左移左操作数值向左移动右操作数中存在的位数更多信息

Java 杂项运算符

下表描述了 Java 支持的其他运算符:

运算符描述
instanceof 运算符如果对象是特定类型的实例,则返回 true (类、子类或接口),否则为 false。
三元运算符 (?:)根据以下条件返回两个值之一布尔表达式的值。

Java 运算符优先级

运算符优先级运算顺序)是一组规则,反映了有关哪些运算符的约定为了计算给定的表达式首先执行的过程。

例如,乘法的优先级高于加法。因此,表达式 1 + 2 × 3 被解释为具有值 1 + (2 × 3) = 7,而不是 (1 + 2) × 3 = 9。当表达式中使用指数时,它优先于加法和乘法。因此 3 + 52 = 28 和 3 × 52 = 75。

下表列出了 Java 运算符的优先级和结合性。运算符按优先级降序从上到下列出。优先级较高的运算符先于优先级相对较低的运算符进行计算。当运算符具有相同优先级时,运算符的结合性决定了运算的执行顺序。

优先级运算符描述关联性
16.对象成员访问从左到右
[ ]数组元素访问
( )括号
15a++  a--后缀递增,后缀递减NA
14!逻辑非从右到左
~按位取反
+a -a一元加,一元负
++a --a前缀递增,前缀递减
13( )演员表
new创建对象
12*  /  %乘法、除法、求余从左到右
11+  -加法、减法、字符串连接
10<<  >>>  >>>按位左移、右移和无符号右移
9<  <=  >  >=小于、小于等于、大于、大于等于
instanceof对象实例
8==  !=平等、不平等
7&按位与
6^按位异或
5|按位或
4&&逻辑与
3||逻辑或
2a?b:c条件(三元)运算符从右到左
1=直接赋值
+=  -=  *=  /=  %=按和、差、积、商和余数进行复合赋值
<<=  >>=  >>>=按位左移、右移和无符号右移的复合赋值
&=  ^=  |=按位 AND、XOR 和 OR 进行复合赋值