Java 不可變物件

2021-06-22 00:28:26 字數 712 閱讀 9874

不可變物件:

1:一旦建立,物件的狀態就不能被修改,任何的修改都會建立乙個新的物件

2:類和類屬性都應該是final型別

3:如果裡面含有非immutable物件,那麼客戶端的呼叫都應該返回乙個該物件的拷貝

不可變物件的好處:

1:執行緒安全

2:建立的物件可以做快取處理,使用靜態工廠方法valueof()返回乙個已經存在的物件

例一:

public final class immutableobject_1 

public date getdate()

}

例二:

public class immutableobject_2 

public name getname()

public static void main(string args)

}class name implements cloneable

public string getfirstname()

public void setfirstname(string firstname)

public string getlastname()

public void setlastname(string lastname)

public name clone()

}

可變物件,不可變物件

不可變物件為字串,元組等 可變物件為列表,字典,集合等。淺拷貝只是對已經存在的記憶體新增加乙個物件引用。深拷貝就是重新申請乙個新的記憶體,使這個是新物件是新記憶體位址的引用。對於可變物件引用時時經常出現。考慮以下兩段 1 l for i in range 10 num i print l 結果 2 ...

可變物件和不可變物件

要理解可變物件和不可變物件,先要理解final關鍵字。參考此部落格 沒有經過原博主的同意便引用了一些,侵刪!final關鍵字可以用來修飾類 方法和變數 成員或區域性 final修飾類時表明這個類不能被繼承。final類中的方法會被隱式的定義為fianl,變數自行定義需要不要被final修飾。fina...

可變物件和不可變物件

python 在堆 heap 中分配的物件分為兩類,可變物件和不可變物件 物件的內容發生變化時,變數的物件引用是不會變化的 dict print s d dict,id dict dict a4 4 print s d dict,id dict output 42838752 42838752 不可...