不可變對象(Immutable Objects)即對象一旦被創建它的狀態(對象的數據,也即
對象屬性值)就不能改變,反之即為可變對象(Mutable Objects)。
不可變對象的類即為不可變類(Immutable Class)。Java 平台類庫中包含許多不可
變類,如 String、基本類型的包裝類、BigInteger 和 BigDecimal 等。
不可變對象天生是線程安全的。它們的常量(域)是在構造函數中創建的。既然
它們的狀態無法修改,這些常量永遠不會變。
不可變對象永遠是線程安全的。
只有滿足如下狀態,一個對象才是不可變的;
它的狀態不能在創建后再被修改;
所有域都是 final 類型;並且,
它被正確創建(創建期間沒有發生 this 引用的逸出)。
