鍍金池/ 教程/ Java/ Java不可變對象
Java參數(shù)傳遞
Java靜態(tài)內(nèi)部類
Java final關(guān)鍵字
http://www.yiibai.com/java_object_oriented_design/java_inheritan
Java泛型類
Java標(biāo)準(zhǔn)注解
Java接口教程
Java注解
Java枚舉類型
http://www.yiibai.com/java_object_oriented_design/java_class_ins
Java接口實現(xiàn)
Java哈希編碼
Java泛型約束
http://www.yiibai.com/java_object_oriented_design/java_import.ht
Java注解默認(rèn)值
Java異常拋出
Java不可變對象
Java類基礎(chǔ)
Java接口繼承
Java類方法
Java訪問級別
Java對象克隆
Java初始化塊
Java可變長度參數(shù)
Java接口字段
Java對象相等比較(Equals)
Java實例和靜態(tài)方法
Java繼承方法隱藏(覆蓋)
Java面向?qū)ο笤O(shè)計
Java對象finalize()方法
Java抽象類和方法
Java Object類
Java泛型方法和構(gòu)造函數(shù)
Java枚舉體
Java接口方法
Java this關(guān)鍵字
Java注解類型的限制
Java main()方法
Java Enum類
Java注解用法
Java枚舉比較
Java注解類型
Java內(nèi)部類成員
Java繼承和構(gòu)造函數(shù)
Java類實例化
Java內(nèi)部類類型
Java對象toString()方法
Java finally塊
Java繼承教程
Java自定義異常
Java枚舉值
Java接口作為類型
Java異常類
Java方法覆蓋教程
http://www.yiibai.com/java_object_oriented_design/java_class_bas
Java枚舉方法
Java方法重載
http://www.yiibai.com/java_object_oriented_design/java_interface
Java異常用法
Java內(nèi)部類
Java類成員訪問級別
Java異常處理教程
Java注解反射
Java構(gòu)造函數(shù)(構(gòu)造器)
Java導(dǎo)入(import語句的用法)

Java不可變對象

在創(chuàng)建狀態(tài)后無法更改其狀態(tài)的對象稱為不可變對象。一個對象不可變的類稱為不可變類。不變的對象可以由程序的不同區(qū)域共享而不用擔(dān)心其狀態(tài)改變。

不可變對象本質(zhì)上是線程安全的。

示例

以下代碼創(chuàng)建了不可變類的示例。

public  class  IntWrapper {
    private  final  int  value;
    public IntWrapper(int value) {
        this.value = value;
    }
    public int  getValue() {
        return value;
    }
}

下面顯示如何創(chuàng)建IntWrapper類的對象:

IntWrapper wrapper  = new IntWrapper(101);

在這一點上,wrapper對象保存101值,并且沒有辦法改變它。因此,IntWrapper類是一個不可變的類,它的對象是不可變的對象。
但是,最好將所有實例變量聲明為final,以便Java編譯器在編譯期間強(qiáng)制執(zhí)行不可變性。