如果这个工具帮到了你,可以请作者喝杯咖啡 ☕
快速查询Java运算符优先级,提供完整优先级表与结合性说明
expr++后置运算左结合返回当前值后将变量加 1。
i++expr--后置运算左结合返回当前值后将变量减 1。
i--++expr一元运算右结合先将变量加 1,再返回新值。
++i--expr一元运算右结合先将变量减 1,再返回新值。
--i+expr一元运算右结合返回操作数的值,触发数值提升。
+x-expr一元运算右结合返回操作数的相反数。
-x~一元运算右结合对整数按位取反,每一位 0 变 1、1 变 0。
~mask!一元运算右结合对布尔值取反,true 变 false,false 变 true。
!ready(type)一元运算右结合将表达式显式转换为目标类型,对引用类型会进行 ClassCastException 检查。
(int) 3.14*乘除取余左结合两个操作数相乘。
a * b/乘除取余左结合整数除法向零截断;浮点除法保留小数。
10 / 3%乘除取余左结合返回相除的余数,操作数可以是整型或浮点型。
10 % 3+加减运算左结合数值相加,或与字符串相连进行拼接。
"Hi " + name-加减运算左结合两个数相减。
a - b<<位移运算左结合整数按位左移,高位丢弃,低位补 0。
1 << 3>>位移运算左结合整数按位右移,保留符号位。
-8 >> 2>>>位移运算左结合整数按位右移,高位补 0,Java 独有。
-1 >>> 28<关系运算左结合左操作数小于右操作数返回 true。
a < b<=关系运算左结合左小于或等于右返回 true。
a <= b>关系运算左结合左操作数大于右操作数返回 true。
a > b>=关系运算左结合左大于或等于右返回 true。
a >= binstanceof关系运算左结合判断对象是否为指定类型或其子类的实例。
obj instanceof String==相等判断左结合基本类型比较值;引用类型比较是否为同一对象。
a == b!=相等判断左结合基本类型比较值是否不同;引用类型比较是否非同一对象。
a != b&按位运算左结合整数按位与;布尔型表示不短路逻辑与。
a & b^按位运算左结合整数按位异或;布尔型表示逻辑异或。
a ^ b|按位运算左结合整数按位或;布尔型表示不短路逻辑或。
a | b&&逻辑运算左结合短路逻辑与:左操作数为 false 时不计算右操作数。
a && b||逻辑运算左结合短路逻辑或:左操作数为 true 时不计算右操作数。
a || b?:条件运算右结合根据布尔条件返回两个表达式之一。
x > 0 ? 1 : -1=赋值运算右结合将右操作数的值赋给左操作数。
x = 10+=赋值运算右结合x = x + y 的简写,同样支持字符串拼接。
x += 1-=赋值运算右结合x = x - y 的简写。
x -= 1*=赋值运算右结合x = x * y 的简写。
x *= 2/=赋值运算右结合x = x / y 的简写。
x /= 2%=赋值运算右结合x = x % y 的简写。
x %= 3&=赋值运算右结合x = x & y 的简写。
x &= 0xFF^=赋值运算右结合x = x ^ y 的简写。
x ^= mask|=赋值运算右结合x = x | y 的简写。
x |= 0x01<<=赋值运算右结合x = x << y 的简写。
x <<= 2>>=赋值运算右结合x = x >> y 的简写。
x >>= 2>>>=赋值运算右结合x = x >>> y 的简写。
x >>>= 2->Lambda 表达式右结合Java 8 引入的 Lambda 表达式,将参数列表与函数体分隔。
(a, b) -> a + b在编写Java表达式时,运算符优先级和结合性容易混淆,导致逻辑错误。本工具提供完整的Java运算符优先级表,从最高到最低共15级,帮助开发者快速查阅,避免因优先级误解造成的bug。按照Java语言规范,清晰列出每个运算符的优先级、结合性及说明。
a + b * c,因为 * 优先级高于 +,所以先算乘法再算加法。() [] . 以及一元运算符 ++ -- ! ~ 等具有最高优先级。a = b = c 等价于 a = (b = c)。本工具展示的是标准Java运算符优先级,不适用于其他语言。表达式中建议使用括号明确顺序,以提高可读性,即使优先级正确。某些运算符在不同上下文中可能有不同含义,请查看具体用法。
记住常用优先级规则:一元运算符高于二元,乘除高于加减,关系高于逻辑与或。开发中若不确定顺序,加上括号可避免歧义。面试或考试常考优先级与结合性组合分析,建议理解本表。