Java 中 + 運算符被賦予字串連接特殊語義。雖與數學加法不同,但語感自然。C++ 透過「運算符重載」實現類似功能,但過於複雜;Java 選擇內建支援,不允許開發者自定義重載,簡化了語言設計。
int x = 0, y = 1, z = 2; String s = "x, y, z "; System.out.println(s + x + y + z); // 輸出: "x, y, z 012" // 早期 Java 版本: System.out.println(x + s); // 編譯錯誤!無法將 int 轉 String // 後期版本自動修正:可正常輸出 "0x, y, z "
規則:表達式首個運算元若為 String,後續所有運算元自動轉為字串連接。早期版本要求第一個元素必須是字串(或帶引號的字面值),否則報錯。現代 Java 已智能處理,但理解此機制有助於除錯舊代碼。