資料是第一級對象的說法比較明顯,有第一級就有第二級。
第一級是指什麼?
無論使用哪種類型的數組,數組的辨別符其實隻是一個引用,指向堆中的一個真實對象。
這個對象(數組)儲存着指向其他對象的引用。第一級指的是對象(數組)的引用,這個引用指向一個對象數組。
輸出:
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:=的輸出 的内容是數組對象的引用。這是第二級