如果這個工具幫到了你,可以請作者喝杯咖啡 ☕
快速查詢Java運算子優先順序,提供完整優先順序表與結合性說明
expr++tools.level-java-query.categories.postfixtools.level-java-query.associativity.left返回当前值后将变量加 1。
i++expr--tools.level-java-query.categories.postfixtools.level-java-query.associativity.left返回当前值后将变量减 1。
i--++exprtools.level-java-query.categories.unarytools.level-java-query.associativity.right先将变量加 1,再返回新值。
++i--exprtools.level-java-query.categories.unarytools.level-java-query.associativity.right先将变量减 1,再返回新值。
--i+exprtools.level-java-query.categories.unarytools.level-java-query.associativity.right返回操作数的值,触发数值提升。
+x-exprtools.level-java-query.categories.unarytools.level-java-query.associativity.right返回操作数的相反数。
-x~tools.level-java-query.categories.unarytools.level-java-query.associativity.right对整数按位取反,每一位 0 变 1、1 变 0。
~mask!tools.level-java-query.categories.unarytools.level-java-query.associativity.right对布尔值取反,true 变 false,false 变 true。
!ready(type)tools.level-java-query.categories.unarytools.level-java-query.associativity.right将表达式显式转换为目标类型,对引用类型会进行 ClassCastException 检查。
(int) 3.14*tools.level-java-query.categories.multiplicativetools.level-java-query.associativity.left两个操作数相乘。
a * b/tools.level-java-query.categories.multiplicativetools.level-java-query.associativity.left整数除法向零截断;浮点除法保留小数。
10 / 3%tools.level-java-query.categories.multiplicativetools.level-java-query.associativity.left返回相除的余数,操作数可以是整型或浮点型。
10 % 3+tools.level-java-query.categories.additivetools.level-java-query.associativity.left数值相加,或与字符串相连进行拼接。
"Hi " + name-tools.level-java-query.categories.additivetools.level-java-query.associativity.left两个数相减。
a - b<<tools.level-java-query.categories.shifttools.level-java-query.associativity.left整数按位左移,高位丢弃,低位补 0。
1 << 3>>tools.level-java-query.categories.shifttools.level-java-query.associativity.left整数按位右移,保留符号位。
-8 >> 2>>>tools.level-java-query.categories.shifttools.level-java-query.associativity.left整数按位右移,高位补 0,Java 独有。
-1 >>> 28<tools.level-java-query.categories.relationaltools.level-java-query.associativity.left左操作数小于右操作数返回 true。
a < b<=tools.level-java-query.categories.relationaltools.level-java-query.associativity.left左小于或等于右返回 true。
a <= b>tools.level-java-query.categories.relationaltools.level-java-query.associativity.left左操作数大于右操作数返回 true。
a > b>=tools.level-java-query.categories.relationaltools.level-java-query.associativity.left左大于或等于右返回 true。
a >= binstanceoftools.level-java-query.categories.relationaltools.level-java-query.associativity.left判断对象是否为指定类型或其子类的实例。
obj instanceof String==tools.level-java-query.categories.equalitytools.level-java-query.associativity.left基本类型比较值;引用类型比较是否为同一对象。
a == b!=tools.level-java-query.categories.equalitytools.level-java-query.associativity.left基本类型比较值是否不同;引用类型比较是否非同一对象。
a != b&tools.level-java-query.categories.bitwisetools.level-java-query.associativity.left整数按位与;布尔型表示不短路逻辑与。
a & b^tools.level-java-query.categories.bitwisetools.level-java-query.associativity.left整数按位异或;布尔型表示逻辑异或。
a ^ b|tools.level-java-query.categories.bitwisetools.level-java-query.associativity.left整数按位或;布尔型表示不短路逻辑或。
a | b&&tools.level-java-query.categories.logicaltools.level-java-query.associativity.left短路逻辑与:左操作数为 false 时不计算右操作数。
a && b||tools.level-java-query.categories.logicaltools.level-java-query.associativity.left短路逻辑或:左操作数为 true 时不计算右操作数。
a || b?:tools.level-java-query.categories.ternarytools.level-java-query.associativity.right根据布尔条件返回两个表达式之一。
x > 0 ? 1 : -1=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.right将右操作数的值赋给左操作数。
x = 10+=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x + y 的简写,同样支持字符串拼接。
x += 1-=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x - y 的简写。
x -= 1*=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x * y 的简写。
x *= 2/=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x / y 的简写。
x /= 2%=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x % y 的简写。
x %= 3&=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x & y 的简写。
x &= 0xFF^=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x ^ y 的简写。
x ^= mask|=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x | y 的简写。
x |= 0x01<<=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x << y 的简写。
x <<= 2>>=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x >> y 的简写。
x >>= 2>>>=tools.level-java-query.categories.assignmenttools.level-java-query.associativity.rightx = x >>> y 的简写。
x >>>= 2->tools.level-java-query.categories.lambdatools.level-java-query.associativity.rightJava 8 引入的 Lambda 表达式,将参数列表与函数体分隔。
(a, b) -> a + b在編寫Java表示式時,運算子優先順序和結合性容易混淆,導致邏輯錯誤。本工具提供完整的Java運算子優先順序表,從最高到最低共15級,幫助開發者快速查閱,避免因優先順序誤解造成的bug。按照Java語言規範,清晰列出每個運算子的優先順序、結合性及說明。
a + b * c,因為 * 優先順序高於 +,所以先算乘法再算加法。() [] . 以及一元運算子 ++ -- ! ~ 等具有最高優先順序。a = b = c 等價於 a = (b = c)。本工具展示的是標準Java運算子優先順序,不適用於其他語言。表示式中建議使用括號明確順序,以提高可讀性,即使優先順序正確。某些運算子在不同上下文中可能有不同含義,請檢視具體用法。
記住常用優先順序規則:一元運算子高於二元,乘除高於加減,關係高於邏輯與或。開發中若不確定順序,加上括號可避免歧義。面試或考試常考優先順序與結合性組合分析,建議理解本表。