物件的訪問定位

2022-09-17 05:30:14 字數 510 閱讀 9365

建立物件是為了使用物件,j**a程式需要通過棧上的reference資料來操作堆上的具體物件。物件的訪問方式,取決於虛擬機器的具體實現。目前主要有控制代碼和直接指標兩種。

控制代碼訪問:

在j**a堆中劃分一塊記憶體作為控制代碼池,reference中儲存的就是物件的控制代碼位址,而控制代碼中包含了物件例項資料與型別資料各自的具體位址資訊。

控制代碼訪問的優勢在於reference中儲存的是穩定的控制代碼位址,物件被移動時只會改變控制代碼中的例項資料指標,而reference本身不需要修改。

直接指標訪問:

直接指標訪問方式的最大好處是速度更快,它節省了一次指標定位的時間開銷

JVM物件的建立 結構 訪問定位

初始化物件預設值問題 臭象資料型別比如date,string預設值是null 基本資料型別預設值是0 布林型別預設false 物件的結構包括header 物件頭 instancedate,padding 物件頭包括 自身執行時資料 雜湊值,gc分代年齡,鎖狀態標誌,執行緒持有的鎖,偏向執行緒id,偏...

JVM學習 物件的例項化 記憶體布局與訪問定位

1 判斷物件對應的類是否載入 鏈結 初始化 虛擬機器遇到一條 new 指令的時候,首先去方法去中查詢這個類是否被載入過。如果沒有,在雙親委派機制模式下,使用當前類載入器 classloader 包名 類名 作為 key 查詢對應的 class 檔案,沒有找到丟擲 classnotfoundexcep...

訪問物件的屬性

1 物件導向具有的三個特性 封裝性,繼承性,多型性。2 我們在物件導向法則中不能用物件直接訪問類中的屬性,所以要將類中的屬性封裝 private 之後我們可以通過setter和getter方法設定和取得被封裝的屬性。3 構造方法可以在例項化乙個物件後可以直接把物件的值賦給屬性 構造方法的過載可以解決...