天天看點

java:數組是第一級對象

資料是第一級對象的說法比較明顯,有第一級就有第二級。

第一級是指什麼?

無論使用哪種類型的數組,數組的辨別符其實隻是一個引用,指向堆中的一個真實對象。

這個對象(數組)儲存着指向其他對象的引用。第一級指的是對象(數組)的引用,這個引用指向一個對象數組。

輸出:

b: [null, null, null, null, null]

a.length = 2

b.length = 5

c.length = 4

d.length = 3

a.length = 3

f: [0, 0, 0, 0, 0]

f.length = 5

g.length = 4

h.length = 3

e.length = 3

e.length = 2

注意第一筆輸出 b: [null, null, null, null, null]

這個輸出有兩層含義

數組b指向一個BerylliumSphere引用的數組,其實并沒有對象在數組中,數組是空的。但仍然可以通路數組的大小,因為b指向一個合法的對象。

c:表示數組的引用,指向堆中的一個真實數組對象這是第一級

再看第五行c:=的輸出 的内容是數組對象的引用。這是第二級