1. 程式人生 > >《深入理解Java虛擬機:JVM高級特性與最佳實踐》【PDF】下載

《深入理解Java虛擬機:JVM高級特性與最佳實踐》【PDF】下載

構建 實現原理 jvm內存 本地方法棧 人物 lvm 劃分 同時 棧溢出

《深入理解Java虛擬機:JVM高級特性與最佳實踐》【PDF】下載鏈接:
https://u253469.pipipan.com/fs/253469-230062566

內容簡介

作為一位java程序員,你是否也曾經想深入理解java虛擬機,但是卻被它的復雜和深奧拒之門外?沒關系,《深入理解java虛擬機:jvm高級特性與最佳實踐》極盡化繁為簡之妙,能帶領你在輕松中領略java虛擬機的奧秘。《深入理解java虛擬機:jvm高級特性與最佳實踐》是近年來國內出版的唯一一本與java虛擬機相關的專著,也是唯一一本同時從核心理論和實際運用這兩個角度去探討java虛擬機的著作,不僅理論分析得透徹,而且書中包含的典型案例和最佳實踐也極具現實指導意義。

全書共分為五大部分。第一部分從宏觀的角度介紹了整個java技術體系的過去、現在和未來,以及如何獨立地編譯一個openjdk7,這對理解後面的內容很有幫助。第二部分講解了jvm的自動內存管理,包括虛擬機內存區域的劃分原理以及各種內存溢出異常產生的原因;常見的垃圾收集算法以及垃圾收集器的特點和工作原理;常見的虛擬機的監控與調試工具的原理和使用方法。第三部分分析了虛擬機的執行子系統,包括class的文件結構以及如何存儲和訪問class中的數據;虛擬機的類創建機制以及類加載器的工作原理和它對虛擬機的意義;虛擬機字節碼的執行引擎以及它在實行代碼時涉及的內存結構。第四部分講解了程序的編譯與代碼的優化,闡述了泛型、自動裝箱拆箱、條件編譯等語法糖的原理;講解了虛擬機的熱點探測方法、hotspot的即時編譯器、編譯觸發條件,以及如何從虛擬機外部觀察和分析jit編譯的數據和結果。第五部分探討了java實現高效並發的原理,包括jvm內存模型的結構和操作;原子性、可見性和有序性在java內存模型中的體現;先行發生原則的規則和使用;線程在java語言中的實現原理;虛擬機實現高效並發所做的一系列鎖優化措施。

《深入理解java虛擬機:jvm高級特性與最佳實踐》適合所有java程序員、系統調優師和系統架構師閱讀。

作譯者簡介

周誌明,資深Java技術專家,對JavaEE企業級應用開發、OSGi、Java虛擬機和工作流等都有深入的研究,並在大量的實踐中積累了豐富的經驗。尤其精通Java虛擬機,撰寫了大量與JVM相關的經典文章,被各大技術社區爭相轉載,是ITeye等技術社區公認的Java虛擬機方面的領袖人物之一。現任遠光軟件股份有限公司平臺開發部經理兼平臺架構師,先後參加與過國家電網、南方電網等多個國家級大型ERP項目的平臺架構工作,對軟件系統架構也有深刻的認識和體會。

目錄

前 言

致 謝

第一部分 走近Java

第1章 走近Java / 2

1.1 概述 /
2

1.2 Java技術體系 / 3

1.3 Java發展史 / 5

1.4 展望Java技術的未來 / 9

1.4.1 模塊化 /
9

1.4.2 混合語言 /
9

1.4.3 多核並行 /
11

1.4.4 進一步豐富語法 /
12

1.4.5 64位虛擬機 / 13

1.5 實戰:自己編譯JDK /
13

1.5.1 獲取JDK源碼 / 13

1.5.2 系統需求 /
14

1.5.3 構建編譯環境 /
15

1.5.4 準備依賴項 /
17

1.5.5 進行編譯 /
18

1.6 本章小結 /
21

第二部分 自動內存管理機制

第2章 Java內存區域與內存溢出異常 / 24

2.1 概述 /
24

2.2 運行時數據區域 /
25

2.2.1 程序計數器 /
25

2.2.2 Java虛擬機棧 / 26

2.2.3 本地方法棧 /
27

2.2.4 Java堆 / 27

2.2.5 方法區 /
28

2.2.6 運行時常量池 /
29

2.2.7 直接內存 /
29

2.3 對象訪問 /
30

2.4 實戰:OutOfMemoryError異常
/ 32

2.4.1 Java堆溢出 / 32

2.4.2 虛擬機棧和本地方法棧溢出 /
35

2.4.3 運行時常量池溢出 /
38

2.4.4 方法區溢出 /
39

2.4.5 本機直接內存溢出 /
41

2.5 本章小結 /
42

第3章 垃圾收集器與內存分配策略
/ 43

3.1 概述 /
43

3.2 對象已死? /
44

3.2.1 引用計數算法 /
44

3.2.2 根搜索算法 /
46

3.2.3 再談引用 /
47

3.2.4 生存還是死亡? /
48

3.2.5 回收方法區 /
50

3.3 垃圾收集算法 /
51

3.3.1 標記 -清除算法 / 51

3.3.2 復制算法 /
52

3.3.3 標記-整理算法 / 54

3.3.4 分代收集算法 /
54

3.4 垃圾收集器 /
55

3.4.1 Serial收集器 / 56

3.4.2 ParNew收集器 / 57

3.4.3 Parallel
Scavenge收集器 /
59

3.4.4 Serial
Old收集器 /
60

3.4.5 Parallel
Old收集器 /
61

3.4.6 CMS收集器 / 61

3.4.7 G1收集器 / 64

3.4.8 垃圾收集器參數總結 /
64

3.5 內存分配與回收策略 /
65

3.5.1 對象優先在Eden分配 / 66

3.5.2 大對象直接進入老年代 /
68

3.5.3 長期存活的對象將進入老年代 /
69

3.5.4 動態對象年齡判定 /
71

3.5.5 空間分配擔保 /
73

3.6 本章小結 /
75

第4章 虛擬機性能監控與故障處理工具
/ 76

4.1 概述 /
76

4.2 JDK的命令行工具 / 76

4.2.1 jps:虛擬機進程狀況工具 / 79

4.2.2 jstat:虛擬機統計信息監視工具
/ 80

4.2.3 jinfo:Java配置信息工具 / 82

4.2.4 jmap:Java內存映像工具 / 82

4.2.5 jhat:虛擬機堆轉儲快照分析工具
/ 84

4.2.6 jstack:Java堆棧跟蹤工具 / 85

4.3 JDK的可視化工具 / 87

4.3.1 JConsole:Java監視與管理控制臺 / 88

4.3.2 VisualVM:多合一故障處理工具
/ 96

4.4 本章小結 /
105

第5章 調優案例分析與實戰
/ 106

5.1 概述 /
106

5.2 案例分析 /
106

5.2.1 高性能硬件上的程序部署策略 /
106

5.2.2 集群間同步導致的內存溢出 /
109

5.2.3 堆外內存導致的溢出錯誤 /
110

5.2.4 外部命令導致系統緩慢 /
112

5.2.5 服務器JVM進程崩潰 / 113

5.3 實戰:Eclipse運行速度調優 / 114

5.3.1 調優前的程序運行狀態 /
114

5.3.2 升級JDK
1.6的性能變化及兼容問題 /
117

5.3.3 編譯時間和類加載時間的優化 /
122

5.3.4 調整內存設置控制垃圾收集頻率 /
126

5.3.5 選擇收集器降低延遲 /
130

5.4 本章小結 /
133

...

《深入理解Java虛擬機:JVM高級特性與最佳實踐》【PDF】下載鏈接:
https://u253469.pipipan.com/fs/253469-230062566

更多書單和推薦電子書請關註:
http://zhaozhiyong.cn

《深入理解Java虛擬機:JVM高級特性與最佳實踐》【PDF】下載