byte b1 = 1;
byte b2 = 2;
byte b3 = b1 + b2; // 編譯錯誤:incompatible types: possible lossy conversion from int to byte
Java 語言規範 (JLS 5.6.2) 定義:任何基本類型算術運算 (`+ - * / %`),操作數會被提升至至少 `int` 類型。
因此 `b1 + b2` 類型是 `int`,不能隱式賦值給 `byte`(可能溢出)。
避免「靜默截斷」導致難以發現的邏輯錯誤。`int` 為 JVM 運算棧標準單元,32 位對齊訪問最高效,強制開發者顯式確認窄化轉換意圖。
C/C++ 同樣將 `char`/`short` 提升為 `int` 運算,但允許隱式窄化賦值(僅警告),C++ `byte` 非標準類型(通常 `uint8_t`/`int8_t` 行為一致)。