jvm中物件的組成結構

2021-10-25 03:20:47 字數 725 閱讀 4637

三部分組成:物件頭、例項資料、對填充(64bit 的jvm規定8byte的整數倍);

驗證:使用openjdk提供的jol工具包列印出jvm物件資訊

引入jol包

org.openjdk.jol<

/groupid>

jol-core<

/artifactid>

put-the-version-here<

/version>

<

/dependency>

使用jol包
public

class

test

class

obj

列印結果

物件頭:如圖(object header)佔12位元組;

例項資料:例項中基本資料型別占用記憶體大小與基本資料型別規定大小一致,存放對應資料,如圖中int 佔4位元組,boolean佔1位元組;而引用型別佔4位元組,存放的是物件的引用位址;

對齊填充:如圖(alignment/padding gap) 就是對齊填充,圖中物件頭加例項資料共23位元組,需要填充1位元組才能使總位元組數為8位元組的整數倍,所以這裡填充位元組為1位元組;

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

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

JVM的GC中物件的age以及JVM記憶體的分配策略

young generation中的gc叫minor gc,eden中的物件拷貝到s。old generation中的gc叫full gc。age,官方文件預設為15,age也相當於計數器,每次gc,age 1,age代表gc的次數。在gc時,s中的物件的age一樣的這批資料大於s空間1 2的話,此...

OCF的組成結構

在原始碼包內有三個目錄 crypto tools ocf patches。crypto tools中包含的是測試工具。在正確安裝完ocf框架後,使用其中的工具可以進行功能和效能的測試。ocf目錄是ocf框架具體實現的 patches目錄包含了核心的不斷的和openssl的補丁。ocf目錄是整個ocf...