什麼是可變物件和不可變物件

2021-10-09 15:58:36 字數 1150 閱讀 8663

可變物件:	屬性值變化時不建立新的物件。簡單來說:就是乙個物件建立之後,可以對其物件進行修改,修改之後,

依舊指向同乙個物件,

除了八大基本型別和包裝型別以及string類外。其他的都屬於可變基本型別。

例題:

list list =

newarraylist()

; list.

add(

"上河圖");

list.

add(

"青木瓜上河圖");

list.

add(

"清明上河圖");

system.out.

println

(list)

; list arraylist =

newarraylist()

; arraylist = list;

arraylist.

add(

"夕陽西下");

system.out.

println

(arraylist==list)

;

輸出結果

list就屬於可變物件,改變了屬性值,但是沒有重新建立乙個新的物件,就說明指向的還是同乙個物件。

不可變物件和可變物件恰好相反。不可變物件:屬性值變化之後會建立乙個新的物件。簡單來說就是乙個物件建立之後不能對其物件進行修改

不可變物件:八大基本型別,包裝型別和string類

例題:

int a =

123;

int b = a;

b =134;

system.out.

println

(a == b)

;//輸出false

因為「int」屬於八大基本型別,是不可變物件,就是不能對其物件進行修改,如果對其物件進行修改的話,就需要建立乙個新的物件。

上面的例題中,物件b對其物件a進行了修改,所以不屬於同乙個物件了。

如有不對,歡迎指正,謝謝。

可變物件和不可變物件

要理解可變物件和不可變物件,先要理解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 不可...

可變物件,不可變物件

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