建立對象是爲了訪問對象,Java程序經過棧的引用(reference)數據來操做堆上的對象。因爲reference類型在Java虛擬機規範中只規定了一個指向對象的引用
。並無規定經過該引用怎麼定位,訪問堆中的對象。具體須要看虛擬機的實現。佈局
兩種訪問方式:spa
Java堆中會劃分一個句柄池,reference存儲的就是對象的句柄地址,而句柄中存放的是對象的實例數據和類型數據的地址信息。
Java堆對象佈局就必須考慮如何存放訪問類型數據的相關信息,reference存儲的就是對象的地址。