Java 所有物件皆在堆積區建立,透過參考(handle)操作,垃圾收集器自動管理記憶體。這簡化了物件傳遞與返回,但帶來兩大代價:
解決之道:盡可能 clone 物件 防止非預期修改,或建立 不可變物件(操作返回新物件,原物件不變)。
有人認為 Java clone 設計笨拙,選擇自行實作複製邏輯(如每個類別提供 duplicate() 方法),完全避開 Object.clone()、Cloneable 介面與 CloneNotSupportedException。這在標準庫極少支援 clone() 的情況下是合理且「安全」的做法。
byvalue 的想像空間byvalue 屬「保留但未實現」關鍵字。理解別名與複製問題後,可想像未來它可能實現自動化本地副本機制,解決複雜複製問題,簡化代碼。