首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 運算符全解析:算術、關系、位運算符核心差異與實戰陷阱

     編輯:Java 綜合教學

一、算術運算符

基本運算符

Java 提供 5 大基礎算術運算符:+(加)、-(減)、*(乘)、/(除)、%(取模/餘數)。

隱式類型提升規則(與 C 語言一致)

  1. byte、short、char 運算時自動提升為 int
  2. 整個表達式按最高精度類型提升:long > float > double
  3. 賦值時若目標類型精度較低,必須強制轉型
byte a = 10, b = 20;
// byte c = a + b; // 編譯錯誤:int 無法隱式轉 byte
byte c = (byte)(a + b); // 正確:強制轉型

除法與取模陷阱

  • 整數除法:結果仍為整數,5 / 2 = 2(截斷小數位)
  • 取模運算:a % b 符號跟隨被除數,-5 % 2 = -1
  • 浮點數除零:不拋異常,返回 Infinity 或 NaN

二、關系運算符

六大運算符

>、<、>=、<=、==、!=

與 C 語言的關鍵差異

特性C 語言Java
結果類型int(0/1)boolean(true/false)
短路求值支持 && ||支持 && ||,邏輯運算結果同為 boolean

代碼驗證

public class RelationalDemo {
    public static void main(String[] args) {
        System.out.println("10 > 5  = " + (10 > 5));   // true
        System.out.println("10 >= 5 = " + (10 >= 5));  // true
        System.out.println("10 < 5  = " + (10 < 5));   // false
        System.out.println("10 <= 5 = " + (10 <= 5));  // false
        System.out.println("10 == 5  = " + (10 == 5));  // false
        System.out.println("10 != 5  = " + (10 != 5));  // true
    }
}

三、位運算符

四大核心運算符

運算符名稱規則示例 (1=01, 2=10)
&按位與同為1才為11 & 2 = 0 (01 & 10 = 00)
|按位或有一個1即為11 | 2 = 3 (01 | 10 = 11)
^按位異或不同為1,相同為01 ^ 2 = 3 (01 ^ 10 = 11)
~按位取反0↔1 逐位翻轉~1 = -2 (補碼表示)

真值表速查

public class BitwiseTruthTable {
    public static void main(String[] args) {
        System.out.println("--- AND ---");
        System.out.println("0 & 0 = " + (0 & 0));
        System.out.println("0 & 1 = " + (0 & 1));
        System.out.println("1 & 0 = " + (1 & 0));
        System.out.println("1 & 1 = " + (1 & 1));
        
        System.out.println("\n--- OR ---");
        System.out.println("0 | 0 = " + (0 | 0));
        System.out.println("0 | 1 = " + (0 | 1));
        System.out.println("1 | 0 = " + (1 | 0));
        System.out.println("1 | 1 = " + (1 | 1));
        
        System.out.println("\n--- XOR ---");
        System.out.println("0 ^ 0 = " + (0 ^ 0));
        System.out.println("0 ^ 1 = " + (0 ^ 1));
        System.out.println("1 ^ 0 = " + (1 ^ 0));
        System.out.println("1 ^ 1 = " + (1 ^ 1));
        
        System.out.println("\n--- NOT ---");
        System.out.println("~0 = " + (~0)); // -1
        System.out.println("~1 = " + (~1)); // -2
    }
}

位運算實戰技巧

  • 判斷奇偶:(n & 1) == 1 比 n % 2 != 0 更快
  • 乘除 2 的冪次:n << 1 ≡ n*2,n >> 1 ≡ n/2
  • 交換變量:異或法 a ^= b; b ^= a; a ^= b;(前文詳述)
  • 權限掩碼:if (permission & READ) != 0 檢查讀權限

四、總結建議

  1. 算術運算:注意整數除法截斷、強制轉型精度損失
  2. 關系運算:牢記結果是 boolean,不可當 int 用
  3. 位運算:掌握真值表,善用位運算優化性能敏感代碼
  4. 短路原則:&& || 遇真/假即停,可用於防空指針 obj != null && obj.method()
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved