三部分組成:物件頭、例項資料、對填充(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...