書馨卡幫你省薪 2024個(gè)人購書報(bào)告 2024中圖網(wǎng)年度報(bào)告
歡迎光臨中圖網(wǎng) 請 | 注冊
> >>
深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)

深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)

作者:馬智
出版社:機(jī)械工業(yè)出版社出版時(shí)間:2021-09-01
開本: 16開 頁數(shù): 512
中 圖 價(jià):¥119.2(8.0折) 定價(jià)  ¥149.0 登錄后可看到會(huì)員價(jià)
加入購物車 收藏
運(yùn)費(fèi)6元,滿39元免運(yùn)費(fèi)
?新疆、西藏除外
本類五星書更多>

深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷) 版權(quán)信息

深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷) 本書特色

華為JDK負(fù)責(zé)人等大咖薦!Java大神全面深入剖Java虛擬機(jī)HotSpot源碼實(shí)現(xiàn),詳解類的生命周期和垃圾收集器原理

深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷) 內(nèi)容簡介

本書以工業(yè)級虛擬機(jī)HotSpot的源代碼分析為基礎(chǔ),詳細(xì)介紹了對象的二分模型、類的加載機(jī)制、類及常量池的解析、方法及變量解析、對象的創(chuàng)建和初始化、Serial和Serial Old垃圾收集器、Java引用類型等的實(shí)現(xiàn)原理,同時(shí)對重點(diǎn)源代碼的實(shí)現(xiàn)進(jìn)行了詳細(xì)解讀,讓讀者真正掌握HotSpot虛擬機(jī)運(yùn)行的每個(gè)細(xì)節(jié)。本書共13章,章節(jié)的前后順序基本都是按類的生命周期進(jìn)行介紹。本書對于HotSpot VM的基礎(chǔ)功能模塊進(jìn)行了源碼剖析,力求交待清楚每個(gè)重要知識點(diǎn)的實(shí)現(xiàn)細(xì)節(jié)和背后的運(yùn)行原理,同時(shí)還會(huì)用大量的實(shí)例和配圖幫助讀者更好的理解。

深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷) 目錄

前言 第1章 認(rèn)識HotSpot VM 1 1.1 初識JVM 1 1.2 編譯OpenJDK 8 3 1.2.1 準(zhǔn)備編譯環(huán)境 3 1.2.2 下載源代碼 3 1.2.3 編譯源代碼 4 1.2.4 通過GDB調(diào)試源代碼 6 1.2.5 通過Eclipse調(diào)試源代碼 7 1.3 HotSpot VM源代碼結(jié)構(gòu) 9 1.4 啟動(dòng)HotSpot VM 11 第2章 二分模型 17 2.1 Java類的表示——Klass 17 2.1.1 Klass類 18 2.1.2 InstanceKlass類 26 2.1.3 InstanceKlass類的子類 29 2.1.4 ArrayKlass類 34 2.1.5 TypeArrayKlass類 35 2.1.6 ObjArrayKlass類 40 2.2 Java對象的表示——oop 46 2.2.1 oopDesc類 46 2.2.2 markOopDesc類 48 2.2.3 instanceOopDesc類 49 2.2.4 arrayOopDesc類 51 2.2.5 arrayOopDesc類的子類 51 2.3 操作句柄——Handle 54 2.3.1 句柄Handle的定義與創(chuàng)建 55 2.3.2 句柄Handle的釋放 57 第3章 類的加載 62 3.1 類加載器 62 3.1.1 引導(dǎo)類加載器/啟動(dòng)類加載器 62 3.1.2 擴(kuò)展類加載器 64 3.1.3 應(yīng)用類加載器/系統(tǒng)類加載器 65 3.1.4 構(gòu)造類加載器實(shí)例 65 3.1.5 類的雙親委派機(jī)制 68 3.2 預(yù)加載類 83 3.2.1 核心類的預(yù)加載 83 3.2.2 數(shù)組的預(yù)加載 87 3.3 Java主類的裝載 88 3.4 觸發(fā)類的裝載 94 第4章 類與常量池的解析 97 4.1 類的解析 97 4.1.1 Class文件格式 97 4.1.2 ClassFileParser類簡介 98 4.1.3 ClassFileStream類簡介 99 4.1.4 解析類文件 102 4.1.5 保存解析結(jié)果 109 4.2 常量池的解析 116 4.2.1 ConstantPool類 117 4.2.2 創(chuàng)建ConstantPool實(shí)例 117 4.2.3 解析常量池項(xiàng) 122 第5章 字段的解析 136 5.1 字段的解析基礎(chǔ) 136 5.1.1 FieldAllocationCount與FieldAllocationType類 136 5.1.2 為字段分配內(nèi)存空間 139 5.1.3 獲取字段信息 141 5.2 偽共享 145 5.3 字段的內(nèi)存布局 148 5.3.1 靜態(tài)字段內(nèi)存塊的偏移量 148 5.3.2 非靜態(tài)字段內(nèi)存塊的偏移量 149 5.3.3 計(jì)算每個(gè)字段的偏移量 154 5.3.4 @Contended字段的偏移量 156 5.4 字段的注入 158 5.5 對象類型字段的遍歷 165 第6章 方法的解析 174 6.1 Method與ConstMethod類 174 6.1.1 Method類 174 6.1.2 ConstMethod類 177 6.2 調(diào)用parse_methods()函數(shù)解析方法 178 6.2.1 創(chuàng)建Method與ConstMethod實(shí)例 182 6.2.2 保存方法解析信息 187 6.3 klassVtable虛函數(shù)表 187 6.3.1 klassVtable類 188 6.3.2 計(jì)算vtable的大小 189 6.3.3 vtable的初始化 200 6.4 klassItable虛函數(shù)表 209 6.4.1 klassItable類 209 6.4.2 計(jì)算itable的大小 211 6.4.3 itable的初始化 213 第7章 類的連接與初始化 220 7.1 類的連接 220 7.2 類的驗(yàn)證 224 7.3 類的重寫 227 7.3.1 生成常量池緩存項(xiàng)索引 228 7.3.2 重寫字節(jié)碼指令 234 7.3.3 創(chuàng)建常量池緩存 238 7.4 方法的連接 244 7.5 類的初始化 246 第8章 運(yùn)行時(shí)數(shù)據(jù)區(qū) 250 8.1 HotSpot VM的內(nèi)存劃分 250 8.2 元空間 252 8.2.1 元空間的數(shù)據(jù)結(jié)構(gòu) 253 8.2.2 內(nèi)存塊的管理 256 8.2.3 內(nèi)存分配 258 8.2.4 內(nèi)存回收 262 8.3 堆空間 267 8.3.1 CollectedHeap、Generation與Space類 268 8.3.2 Java堆的回收策略 277 8.3.3 Java堆的初始化 288 第9章 類對象的創(chuàng)建 299 9.1 對象的創(chuàng)建 299 9.2 對象的內(nèi)存分配 311 9.2.1 在TLAB中分配內(nèi)存 311 9.2.2 在堆中分配內(nèi)存 322 9.2.3 添加對象偏移表記錄 335 第10章 垃圾回收 344 10.1 分代垃圾回收 344 10.1.1 Serial和Serial Old垃圾收集器 344 10.1.2 復(fù)制算法和“標(biāo)記-整理”算法 346 10.1.3 卡表 352 10.2 垃圾回收線程 358 10.3 安全點(diǎn) 370 10.3.1 關(guān)于安全點(diǎn) 370 10.3.2 阻塞線程和狀態(tài)切換線程進(jìn)入安全點(diǎn) 376 10.3.3 解釋線程進(jìn)入安全點(diǎn) 379 10.3.4 編譯線程進(jìn)入安全點(diǎn) 383 10.3.5 執(zhí)行本地代碼線程進(jìn)入安全點(diǎn) 385 第11章 Serial垃圾收集器 388 11.1 觸發(fā)YGC 388 11.2 年輕代的垃圾回收 389 11.3 標(biāo)記普通的根對象 403 11.4 標(biāo)記老年代引用的對象 415 11.5 遞歸標(biāo)記活躍對象并復(fù)制 422 第12章 Serial Old垃圾收集器 428 12.1 觸發(fā)FGC 428 12.2 標(biāo)記活躍對象 431 12.3 計(jì)算活躍對象的地址 440 12.4 更新對象的引用地址 451 12.5 移動(dòng)所有活躍對象 457 12.6 更新偏移表與卡表 460 第13章 Java引用類型 463 13.1 Java引用類型簡介 463 13.2 查找引用類型 469 13.3 軟引用 481 13.4 弱引用 490 13.5 虛引用 492 13.6 *終引用 495
展開全部

深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷) 作者簡介

馬智 有多年的Java開發(fā)經(jīng)驗(yàn),先后在掌游天下和京東集團(tuán)任軟件研發(fā)工程師。對編程語言的底層實(shí)現(xiàn)有濃厚的興趣,深入研究過OpenJDK的源碼實(shí)現(xiàn)。著有《深入解析Java編譯器:源碼剖析與實(shí)例詳解》一書,頗受讀者好評。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網(wǎng)
在線客服