注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)

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

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

定 價(jià):¥149.00

作 者: 馬智 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111689898 出版時(shí)間: 2021-09-01 包裝: 平裝
開本: 16開 頁數(shù): 512 字?jǐn)?shù):  

內(nèi)容簡介

  《深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)》以流行的工業(yè)級Java虛擬機(jī)HotSpot為基礎(chǔ),詳細(xì)剖析其基礎(chǔ)功能模塊的源碼,力求講清楚每個(gè)重要技術(shù)的原理和實(shí)現(xiàn)細(xì)節(jié),同時(shí)結(jié)合大量實(shí)例和圖示幫助讀者更好地理解所講內(nèi)容?!渡钊肫饰鯦ava虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)》沒有介紹Java運(yùn)行時(shí)的棧結(jié)構(gòu),以及解釋執(zhí)行與編譯執(zhí)行等知識點(diǎn),這些內(nèi)容在《深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)》的姊妹篇《深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(運(yùn)行時(shí)卷)》一書中進(jìn)行詳細(xì)的介紹。 《深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)》共13章,章節(jié)順序基本上是按照類的生命周期進(jìn)行編排的?!渡钊肫饰鯦ava虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)》涵蓋的主要內(nèi)容有HotSpot VM簡介、對象的二分模型、類的加載機(jī)制、類與常量池的解析、字段的解析、方法的解析、類的連接與初始化、運(yùn)行時(shí)數(shù)據(jù)區(qū)、類對象的創(chuàng)建和初始化、Serial垃圾收集器、Serial Old垃圾收集器以及Java引用類型的實(shí)現(xiàn)原理等。 《深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)》主要面向想要深入學(xué)習(xí)和研究Java語言運(yùn)行原理的人,尤其是正在從事或?qū)硐胍獜氖绿摂M機(jī)開發(fā)的編程人員。另外,《深入剖析Java虛擬機(jī):源碼剖析與實(shí)例詳解(基礎(chǔ)卷)》還非常適合Java求職人員閱讀,可以幫助他們系統(tǒng)掌握虛擬機(jī)的相關(guān)知識,從而游刃有余地應(yīng)對相關(guān)公司招聘時(shí)的考查。

作者簡介

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

圖書目錄

前言
第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
……

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號