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

Java 運算符完整指南:算術、賦值、比較、邏輯、位、三元運算符詳解與面試陷阱

     編輯:Java 相關知識

運算符分類總覽

類別運算符優先級(高→低)
後綴expr++ expr--1
一元++expr --expr +expr -expr ~ !2
乘除* / %3
加減+ -4
位移<< >> >>>5
關係< > <= >= instanceof6
相等== !=7
位與&8
位異或^9
位或|10
邏輯與&&11
邏輯或||12
三元? :13
賦值= += -= *= /= %= &= ^= |= <<= >>= >>>=14

重點陷阱與面試題

1. short/byte 隱式轉型陷阱

short s = 1;
s = s + 1;      // ❌ 編譯錯誤:int 無法賦值給 short
s += 1;         // ✅ 隱含強轉:s = (short)(s + 1)

規則:+= -= *= /= 等擴展賦值運算符隱含強制類型轉換。

2. 整數除法精度丟失

int a = 5, b = 2;
double d = a / b;      // 2.0 (先整除再轉)
double d2 = a * 1.0 / b; // 2.5 (提升為浮點運算)

3. & vs &&、| vs || 短路特性

if (false && method()) {}  // method() 不執行
if (false & method()) {}   // method() 執行
// 同理:true || ... 短路,true | ... 不短路

4. 位運算實戰技巧

操作位運算寫法等價算術
乘 2^nx << nx * (1 << n)
除 2^n (向下取整)x >> nx / (1 << n)
判斷奇偶(x & 1) == 1x % 2 != 0
交換兩數 (無臨時變數)a ^= b; b ^= a; a ^= b;--
取模 2^nx & ((1 << n) - 1)x % (1 << n)

面試題:最高效計算 2 * 8 → 2 << 3 (16)

5. 三元運算符嵌套最佳實踐

// ❌ 難讀
int max = a > b ? (a > c ? a : c) : (b > c ? b : c);

// ✅ 清晰
int maxAB = a > b ? a : b;
int max = maxAB > c ? maxAB : c;

// ✅ Java 8+ Stream
int max = IntStream.of(a, b, c).max().getAsInt();

鍵盤輸入模板

import java.util.Scanner;

Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
String s = sc.nextLine(); // 讀整行
sc.close();

總結

Java 運算符看似基礎,實則暗藏精密的類型提升、隱式轉換、短路邏輯、位運算技巧。掌握優先級表、short/byte 陷阱、&&/|| 短路、位運算高效寫法、三元運算符可讀性原則,是寫出正確、高效、可維護代碼的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved