首 頁(yè)
手機(jī)版

自己動(dòng)手寫(xiě)java虛擬機(jī) 張秀宏pdf掃描版

  • 軟件大?。?.28M
  • 軟件語(yǔ)言:簡(jiǎn)體中文
  • 軟件類型:國(guó)產(chǎn)軟件
  • 軟件授權(quán):免費(fèi)軟件
  • 更新時(shí)間:2023/09/12
  • 軟件類別:電子閱讀
  • 應(yīng)用平臺(tái):Windows10,Windows8,Windows7,WinVista,Win2003,WinXP,Win2000
網(wǎng)友評(píng)分:7.5分
網(wǎng)友評(píng)論 下載地址 收藏該頁(yè)
本地下載

自己動(dòng)手寫(xiě)java虛擬機(jī)是一本以實(shí)戰(zhàn)模式描述JVM原理的書(shū),由資深Java服務(wù)器開(kāi)發(fā)工程師張秀宏編著,本書(shū)對(duì)JVM進(jìn)行了大量研究,在書(shū)中深入淺出地分析了class文件的數(shù)據(jù)結(jié)構(gòu)和JVM的基本原理,并使用Go語(yǔ)言用不到1萬(wàn)行的程序代碼就實(shí)現(xiàn)了JVM的基本模型,是Java愛(ài)好者了解JVM實(shí)現(xiàn)原理的一本好書(shū)。實(shí)戰(zhàn)才是最有效的掌握知識(shí)的手段,快快動(dòng)手,實(shí)現(xiàn)屬于自己的Java虛擬機(jī)吧!

自己動(dòng)手寫(xiě)java虛擬機(jī)

內(nèi)容介紹

《自己動(dòng)手寫(xiě)java虛擬機(jī)》是繼深入理解Java虛擬機(jī)之后的又一經(jīng)典著作,它一方面遵循Java虛擬機(jī)規(guī)范,一方面又獨(dú)辟蹊徑,不僅能讓Java虛擬機(jī)的學(xué)習(xí)變得更加簡(jiǎn)單和有趣,而且能讓你對(duì)Java虛擬機(jī)的原理認(rèn)識(shí)更深入和更深刻!

全書(shū)書(shū)摒棄了傳統(tǒng)的以解讀枯燥的Java虛擬機(jī)規(guī)范文檔和分析繁瑣的Java虛擬機(jī)源代碼的方式來(lái)講解Java虛擬機(jī),取而代之的是,以實(shí)踐的方式,引導(dǎo)讀者如何從零開(kāi)始構(gòu)建和實(shí)現(xiàn)一個(gè)Java虛擬機(jī),整個(gè)過(guò)程不僅能讓讀者做到對(duì)Java虛擬機(jī)知其然而且知其所以然,還能屏蔽大量不必要的繁瑣細(xì)節(jié),體會(huì)到實(shí)現(xiàn)過(guò)程中的成就感,讓學(xué)習(xí)過(guò)程更加輕松、愉悅和高效。更重要的是,這種方式能引導(dǎo)讀者更深入地認(rèn)識(shí)和掌握J(rèn)ava虛擬機(jī)的工作原理。

本書(shū)主要內(nèi)容

全書(shū)一共分為11章,各章內(nèi)容安排如下:

第1章:安裝開(kāi)發(fā)環(huán)境,討論java命令,并編寫(xiě)一個(gè)類似Java的命令行程序。

第2章:討論Java虛擬機(jī)如何搜索class文件,實(shí)現(xiàn)類路徑。

第3章:討論class文件結(jié)構(gòu),實(shí)現(xiàn)class文件解析。

第4章:討論運(yùn)行時(shí)數(shù)據(jù)區(qū),實(shí)現(xiàn)線程私有的運(yùn)行時(shí)數(shù)據(jù)區(qū),包括線程、Java虛擬機(jī)棧、棧幀、操作數(shù)棧和局部變量表等。

第5章:討論Java虛擬機(jī)指令集和解釋器,實(shí)現(xiàn)解釋器和150余條指令。

第6章:討論類、對(duì)象以及線程共享的運(yùn)行時(shí)數(shù)據(jù)區(qū),實(shí)現(xiàn)類加載器、方法區(qū)以及部分引用類指令。

第7章:討論方法調(diào)用和返回,實(shí)現(xiàn)方法調(diào)用和返回指令。

第8章:討論數(shù)組和字符串,實(shí)現(xiàn)數(shù)組相關(guān)指令和字符串池。

第9章:討論本地方法調(diào)用,實(shí)現(xiàn)Object.hashCode()等本地方法。

第10章:討論異常處理機(jī)制,實(shí)現(xiàn)athrow指令。

第11章:討論System類的初始化過(guò)程和System.out.println()的工作原理等,并對(duì)全書(shū)進(jìn)行總結(jié)。

自己動(dòng)手寫(xiě)java虛擬機(jī)章節(jié)目錄

前言

第1章 命令行工具 1

1.1 準(zhǔn)備工作 1

1.2 java命令 4

1.3 編寫(xiě)命令行工具 5

1.4 測(cè)試本章代碼 7

1.5 本章小結(jié) 8

第2章 搜索class文件 9

2.1 類路徑 9

2.2 準(zhǔn)備工作 10

2.3 實(shí)現(xiàn)類路徑 11

2.4 測(cè)試本章代碼 20

2.5 本章小結(jié) 21

第3章 解析class文件 23

3.1 class文件 24

3.2 解析class文件 25

3.3 解析常量池 35

3.4 解析屬性表 50

3.5 測(cè)試本章代碼 61

3.6 本章小結(jié) 63

第4章 運(yùn)行時(shí)數(shù)據(jù)區(qū) 65

4.1 運(yùn)行時(shí)數(shù)據(jù)區(qū)概述 66

4.2 數(shù)據(jù)類型 67

4.3 實(shí)現(xiàn)運(yùn)行時(shí)數(shù)據(jù)區(qū) 68

4.4 測(cè)試本章代碼 81

4.5 本章小結(jié) 83

第5章 指令集和解釋器 85

5.1 字節(jié)碼和指令集 86

5.2 指令和指令解碼 88

5.2.1 Instruction接口 89

5.2.2 BytecodeReader 91

5.3 常量指令 92

5.3.1 nop指令 92

5.3.2 const系列指令 93

5.3.3 bipush和sipush指令 94

5.4 加載指令 94

5.5 存儲(chǔ)指令 95

5.6 棧指令 96

5.6.1 pop和pop2指令 96

5.6.2 dup指令 97

5.6.3 swap指令 98

5.7 數(shù)學(xué)指令 98

5.7.1 算術(shù)指令 98

5.7.2 位移指令 99

5.7.3 布爾運(yùn)算指令 101

5.7.4 iinc指令 102

5.8 類型轉(zhuǎn)換指令 102

5.9 比較指令 103

5.10 控制指令 108

5.11 擴(kuò)展指令 111

5.12 解釋器 114

5.13 測(cè)試本章代碼 118

5.14 本章小結(jié) 120

第6章 類和對(duì)象 121

6.1 方法區(qū) 122

6.2 運(yùn)行時(shí)常量池 127

6.3 類加載器 133

6.4 對(duì)象、實(shí)例變量和類變量 136

6.5 類和字段符號(hào)引用解析 141

6.6 類和對(duì)象相關(guān)指令 144

6.7 測(cè)試本章代碼 156

6.8 本章小結(jié) 160

第7章 方法調(diào)用和返回 161

7.1 方法調(diào)用概述 161

7.2 解析方法符號(hào)引用 163

7.3 方法調(diào)用和參數(shù)傳遞 166

7.4 返回指令 169

7.5 方法調(diào)用指令 170

7.6 改進(jìn)解釋器 176

7.7 測(cè)試方法調(diào)用 178

7.8 類初始化 181

7.9 本章小結(jié) 185

第8章 數(shù)組和字符串 187

8.1 數(shù)組概述 187

8.2 數(shù)組實(shí)現(xiàn) 188

8.3 數(shù)組相關(guān)指令 191

8.4 測(cè)試數(shù)組 203

8.5 字符串 204

8.6 測(cè)試字符串 207

8.7 本章小結(jié) 210

第9章 本地方法調(diào)用 211

9.1 注冊(cè)和查找本地方法 212

9.2 調(diào)用本地方法 213

9.3 反射 215

9.4 字符串拼接和String.intern()方法 225

9.5 Object.hashCode()、equals()和toString() 231

9.6 Object.clone() 233

9.7 自動(dòng)裝箱和拆箱 235

9.8 本章小結(jié) 238

第10章 異常處理 239

10.1 異常處理概述 239

10.2 異常拋出 240

10.3 異常處理表 241

10.4 實(shí)現(xiàn)athrow指令 245

10.5 Java虛擬機(jī)棧信息 248

10.6 測(cè)試本章代碼 251

10.7 本章小結(jié) 252

第11章 結(jié)束 253

11.1 System類是如何被初始化的 253

11.2 初始化System類 255

11.3 System.out.println()是如何工作的 258

11.4 測(cè)試本章代碼 260

11.5 總結(jié) 260

附錄 指令表 263

收起介紹展開(kāi)介紹
  • 下載地址
自己動(dòng)手寫(xiě)java虛擬機(jī) 張秀宏pdf掃描版

有問(wèn)題? 點(diǎn)此報(bào)錯(cuò)

發(fā)表評(píng)論

0條評(píng)論

熱門推薦