| 書[0名0]: | 深入理解Java虛擬機:JVM高級特性與zui佳實踐([0第0]2版)|3768003 |
| 圖書定價: | 79元 |
| 圖書作者: | 周誌明 |
| 齣版社: | 機械工業齣版社 |
| 齣版日期: | 2013/6/1 0:00:00 |
| ISBN號: | 9787111421900 |
| 開本: | 16開 |
| 頁數: | 433 |
| 版次: | 2-1 |
| 作者簡介 |
| 周誌明,資深Java技術專傢,對JavaEE企業級應用開發、OSGi、Java虛擬機和工作流等都有深入的研究,並在[0大0]量的實踐中積纍瞭豐富的經驗。尤其精通Java虛擬機,撰寫瞭[0大0]量與JVM相關的經典文章,被各[0大0]技術社區爭相轉載,是ITeye等技術社區公認的Java虛擬機方麵的[0領0]袖人物之一。除本書外,還著有經典著作《深入理解OSGi:Equi[0no0]x原理、應用與佳實踐》,廣獲讀者好[0評0]。現任遠光軟件股份有限公司開發部總經理兼架構師,先後參與過[0國0]傢電網、南方電網等多個[0大0]型ERP項目的平颱架構工作,對軟件係統架構也有深刻的認識和體[0會0]。 |
| 內容簡介 |
| 《深入理解Java虛擬機:JVM高級特性與佳實踐([0第0]2版)》[0第0]1版兩年內印刷近10次,4傢網上書店的[0評0]論近4?000條,98%以上的[0評0]論全部為5星級的好[0評0],是整個Java圖書[0領0]域公認的經典著作和[0超0]級[0暢0]銷書,繁體版在颱灣也十分受歡迎。[0第0]2版在[0第0]1版的基礎上做瞭很[0大0]的改進:根據新的JDK 1.7對全書內容進行瞭全麵的升級和補充;增加瞭[0大0]量處理各種常見JVM問題的技巧和佳實踐;增加瞭若乾與生産環境相結閤的實戰案例;對[0第0]1版中的錯誤和不足之處的修正;等等。[0第0]2版不僅技術更新、內容更豐富,而且實戰性更強。 全書共分為五[0大0]部分,圍繞內存管理、執行子係統、程序編譯與[0優0]化、高效並發等核心主題對JVM進行瞭全麵而深入的分析,深刻揭示瞭JVM的工作原理。[0第0]一部分從宏觀的角度介紹瞭整個Java技術體係、Java和JVM的發展曆程、模塊化,以及JDK的編譯,這對理解本書後麵內容有重要幫助。[0第0]二部分講解瞭JVM的自動內存管理,包括虛擬機內存區域的劃分原理以及各種內存溢齣異常産生的原因;常見的垃圾收集算[0法0]以及垃圾收集器的特點和工作原理;常見虛擬機監控與故障處理工具的原理和使用方[0法0]。[0第0]三部分分析瞭虛擬機的執行子係統,包括類文件結構、虛擬機類加載機製、虛擬機字節碼執行引擎。[0第0]四部分講解瞭程序的編譯與代碼的[0優0]化,闡述瞭泛型、自動裝箱拆箱、條件編譯等語[0法0]糖的原理;講解瞭虛擬機的熱點探測方[0法0]、HotSpot的即時編譯器、編譯觸發條件,以及如何從虛擬機外部觀察和分析JIT編譯的數據和結果;[0第0]五部分探討瞭Java實現高效並發的原理,包括JVM內存模型的結構和操作;原子性、可見性和有序性在Java內存模型中的體現;先行發生原則的規則和使用;綫程在Java語言中的實現原理;虛擬機實現高效並發所做的一係列鎖[0優0]化措施。 |
| 目錄 |
《深入理解Java虛擬機:JVM高級特性與佳實踐([0第0]2版)》 前言 [0第0]一部分 走近Java [0第0]1章 走近Java / 2 1.1 概述 / 2 1.2 Java技術體係 / 3 1.3 Java發展[0史0] / 5 1.4 Java虛擬機發展[0史0] / 9 1.4.1 Sun Classic / Exact VM / 9 1.4.2 Sun HotSpot VM / 11 1.4.3 Sun Mobile-Embedded VM / Meta-Circular VM / 12 1.4.4 BEA JRockit / IBM J9 VM / 13 1.4.5 Azul VM / BEA Liquid VM / 14 1.4.6 Apache Harmony / Google Android Dalvik VM / 14 1.4.7 Microsoft JVM及其他 / 15 1.5 展望Java技術的未來 / 16 1.5.1 模塊化 / 17 1.5.2 混閤語言 / 17 1.5.3 多核並行 / 19 1.5.4 進一步豐富語[0法0] / 20 1.5.5 64位虛擬機 / 21 1.6 實戰:自己編譯JDK / 22 1.6.1 獲取JDK源碼 / 22 1.6.2 係統需求 / 24 1.6.3 構建編譯環境 / 25 1.6.4 進行編譯 / 26 1.6.5 在IDE工具中進行源碼調試 / 31 1.7 本章小結 / 35 [0第0]二部分 自動內存管理機製 [0第0]2章 Java內存區域與內存溢齣異常 / 38 2.1 概述 / 38 2.2 運行時數據區域 / 38 2.2.1 程序計數器 / 39 2.2.2 Java虛擬機棧 / 39 2.2.3 本地方[0法0]棧 / 40 2.2.4 Java堆 / 41 2.2.5 方[0法0]區 / 41 2.2.6 運行時常量池 / 42 2.2.7 直接內存 / 43 2.3 HotSpot虛擬機對象探秘 / 43 2.3.1 對象的創建 / 44 2.3.2 對象的內存布局 / 47 2.3.3 對象的訪問定位 / 48 2.4 實戰:OutOfMemoryError異常 / 50 2.4.1 Java堆溢齣 / 51 2.4.2 虛擬機棧和本地方[0法0]棧溢齣 / 53 2.4.3 方[0法0]區和運行時常量池溢齣 / 56 2.4.4 本機直接內存溢齣 / 59 2.5 本章小結 / 60 [0第0]3章 垃圾收集器與內存分配策略 / 61 3.1 概述 / 61 3.2 對象已死嗎 / 62 3.2.1 引用計數算[0法0] / 62 3.2.2 可達性分析算[0法0] / 64 3.2.3 再談引用 / 65 3.2.4 生存還是死亡 / 66 3.2.5 迴收方[0法0]區 / 68 3.3 垃圾收集算[0法0] / 69 3.3.1 標記-清除算[0法0] / 69 3.3.2 復製算[0法0] / 70 3.3.3 標記-整理算[0法0] / 71 3.3.4 分代收集算[0法0] / 72 3.4 HotSpot的算[0法0]實現 / 72 3.4.1 枚舉根節點 / 72 3.4.2 安全點 / 73 3.4.3 安全區域 / 74 3.5 垃圾收集器 / 75 3.5.1 Serial收集器 / 76 3.5.2 ParNew收集器 / 77 3.5.3 Par[0all0]el Scavenge收集器 / 79 3.5.4 Serial Old收集器 / 80 3.5.5 Par[0all0]el Old收集器 / 80 3.5.6 CMS收集器 / 81 3.5.7 G1收集器 / 84 3.5.8 理解GC日誌 / 89 3.5.9 垃圾收集器參數總結 / 90 3.6 內存分配與迴收策略 / 91 3.6.1 對象[0優0]先在Eden分配 / 91 3.6.2 [0大0]對象直接進入老年代 / 93 3.6.3 長期存活的對象將進入老年代 / 95 3.6.4 動態對象年齡判定 / 97 3.6.5 空間分配擔保 / 98 3.7 本章小結 / 100 [0第0]4章 虛擬機性能監控與故障處理工具 / 101 4.1 概述 / 101 4.2 JDK的命令行工具 / 101 4.2.1 jps:虛擬機進程狀況工具 / 104 4.2.2 jstat:虛擬機統計信息監視工具 / 105 4.2.3 jinfo:Java配置信息工具 / 106 4.2.4 jmap:Java內存映像工具 / 107 4.2.5 jhat:虛擬機堆轉儲快照分析工具 / 108 4.2.6 jstack:Java堆棧跟蹤工具 / 109 4.2.7 HSDIS:JIT生成代碼反匯編 / 111 4.3 JDK的可視化工具 / 114 4.3.1 JConsole:Java監視與管理控製颱 / 115 4.3.2 VisualVM:多閤一故障處理工具 / 122 4.4 本章小結 / 131 [0第0]5章 調[0優0]案例分析與實戰 / 132 5.1 概述 / 132 5.2 案例分析 / 132 5.2.1 高性能硬件上的程序部署策略 / 132 5.2.2 集群間同步導緻的內存溢齣 / 135 5.2.3 堆外內存導緻的溢齣錯誤 / 136 5.2.4 外部命令導緻係統緩慢 / 137 5.2.5 服務器JVM進程崩潰 / 138 5.2.6 不恰[0當0]數據結構導緻內存占用過[0大0] / 139 5.2.7 由Windows虛擬內存導緻的長時間停頓 / 141 5.3 實戰:Eclipse運行速度調[0優0] / 142 5.3.1 調[0優0]前的程序運行狀態 / 142 5.3.2 升級JDK 1.6的性能變化及兼容問題 / 145 5.3.3 編譯時間和類加載時間的[0優0]化 / 150 5.3.4 調整內存設置控製垃圾收集頻率 / 153 5.3.5 選擇收集器降低延遲 / 157 5.4 本章小結 / 160 [0第0]三部分 虛擬機執行子係統 [0第0]6章 類文件結構 / 162 6.1 概述 / 162 6.2 無關性的基石 / 162 6.3 Class類文件的結構 / 164 6.3.1 魔數與Class文件的版本 / 166 6.3.2 常量池 / 167 6.3.3 訪問標誌 / 173 6.3.4 類索引、父類索引與接口索引集閤 / 174 6.3.5 字段錶集閤 / 175 6.3.6 方[0法0]錶集閤 / 178 6.3.7 屬性錶集閤 / 180 6.4 字節碼指令簡介 / 196 6.4.1 字節碼與數據類型 / 197 6.4.2 加載和存儲指令 / 199 6.4.3 運算指令 / 200 6.4.4 類型轉換指令 / 202 6.4.5 對象創建與訪問指令 / 203 6.4.6 操作數棧管理指令 / 203 6.4.7 控製轉移指令 / 204 6.4.8 方[0法0]調用和返迴指令 / 204 6.4.9 異常處理指令 / 205 6.4.10 同步指令 / 205 6.5 公有設計和私有實現 / 206 6.6 Class文件結構的發展 / 207 6.7 本章小結 / 208 [0第0]7章 虛擬機類加載機製 / 209 7.1 概述 / 209 7.2 類加載的時機 / 210 7.3 類加載的過程 / 214 7.3.1 加載 / 214 7.3.2 驗證 / 216 7.3.3 準備 / 219 7.3.4 解析 / 220 7.3.5 初始化 / 225 7.4 類加載器 / 227 7.4.1 類與類加載器 / 228 7.4.2 [0[0雙0]0]親委派模型 / 229 7.4.3 破壞[0[0雙0]0]親委派模型 / 233 7.5 本章小結 / 235 [0第0]8章 虛擬機字節碼執行引擎 / 236 8.1 概述 / 236 8.2 運行時棧幀結構 / 236 8.2.1 局部變量錶 / 238 8.2.2 操作數棧 / 242 8.2.3 動態連接 / 243 8.2.4 方[0法0]返迴地址 / 243 8.2.5 附加信息 / 244 8.3 方[0法0]調用 / 244 8.3.1 解析 / 244 8.3.2 分派 / 246 8.3.3 動態類型語言支持 / 258 8.4 基於棧的字節碼解釋執行引擎 / 269 8.4.1 解釋執行 / 269 8.4.2 基於棧的指令集與基於寄存器的指令集 / 270 8.4.3 基於棧的解釋器執行過程 / 272 8.5 本章小結 / 275 [0第0]9章 類加載及執行子係統的案例與實戰 / 276 9.1 概述 / 276 9.2 案例分析 / 276 9.2.1 Tomcat:正統的類加載器架構 / 276 9.2.2 OSGi:靈活的類加載器架構 / 279 9.2.3 字節碼生成技術與動態代理的實現 / 282 9.2.4 Retrotranslator:跨越JDK版本 / 286 9.3 實戰:自己動手實現遠程執行功能 / 289 9.3.1 目標 / 290 9.3.2 思路 / 290 9.3.3 實現 / 291 9.3.4 驗證 / 298 9.4 本章小結 / 299 [0第0]四部分 程序編譯與代碼[0優0]化 [0第0]10章 早期(編譯期)[0優0]化 / 302 10.1 概述 / 302 10.2 Javac編譯器 / 303 10.2.1 Javac的源碼與調試 / 303 10.2.2 解析與填充符號錶 / 305 10.2.3 注解處理器 / 307 10.2.4 語義分析與字節碼生成 / 307 10.3 Java語[0法0]糖的味道 / 311 10.3.1 泛型與類型擦除 / 311 10.3.2 自動裝箱、拆箱與遍曆循環 / 315 10.3.3 條件編譯 / 317 10.4 實戰:插入式注解處理器 / 318 10.4.1 實戰目標 / 318 10.4.2 代碼實現 / 319 10.4.3 運行與測試 / 326 10.4.4 其他應用案例 / 327 10.5 本章小結 / 328 [0第0]11章 晚期(運行期)[0優0]化 / 329 11.1 概述 / 329 11.2 HotSpot虛擬機內的即時編譯器 / 329 11.2.1 解釋器與編譯器 / 330 11.2.2 編譯對象與觸發條件 / 332 11.2.3 編譯過程 / 337 11.2.4 查看及分析即時編譯結果 / 339 11.3 編譯[0優0]化技術 / 345 11.3.1 [0優0]化技術概覽 / 346 11.3.2 公共子錶達式消除 / 350 11.3.3 數組邊界檢查消除 / 351 11.3.4 方[0法0]內聯 / 352 11.3.5 逃逸分析 / 354 11.4 Java與C/C++的編譯器對比 / 356 11.5 本章小結 / 358 [0第0]五部分 高效並發 [0第0]12章 Java內存模型與綫程 / 360 12.1 概述 / 360 12.2 硬件的效率與一緻性 / 361 12.3 Java內存模型 / 362 12.3.1 主內存與工作內存 / 363 12.3.2 內存間交互操作 / 364 12.3.3 對於volatile型變量的特殊規則 / 366 12.3.4 對於long和double型變量的特殊規則 / 372 12.3.5 原子性、可見性與有序性 / 373 12.3.6 先行發生原則 / 375 12.4 Java與綫程 / 378 12.4.1 綫程的實現 / 378 12.4.2 Java綫程調度 / 381 12.4.3 狀態轉換 / 383 12.5 本章小結 / 384 [0第0]13章 綫程安全與鎖[0優0]化 / 385 13.1 概述 / 385 13.2 綫程安全 / 385 13.2.1 Java語言中的綫程安全 / 386 13.2.2 綫程安全的實現方[0法0] / 390 13.3 鎖[0優0]化 / 397 13.3.1 自鏇鎖與自適應自鏇 / 398 13.3.2 鎖消除 / 398 13.3.3 鎖粗化 / 400 13.3.4 輕量級鎖 / 400 13.3.5 偏嚮鎖 / 402 13.4 本章小結 / 403 附 錄 附錄A 編譯Windows版的OpenJDK / 406 附錄B 虛擬機字節碼指令錶 / 414 附錄C HotSpot虛擬機主要參數錶 / 420 附錄D 對象查詢語言(OQL)簡介 / 424 附錄E JDK曆[0史0]版本軌跡 / 430 |
| 編輯推薦 |
| 《深入理解Java虛擬機(JVM高級特性與佳實踐[0第0]2版)》由周誌明所著,[0超0]級[0暢0]銷書全新升級,[0第0]1版兩年內印刷近10次,Java圖書[0領0]域公認的經典著作,繁體版颱灣發行。 基於新JDK1.7,圍繞內存管理、執行子係統、程序編譯與[0優0]化、高效並發等核心主題對JVM進行全麵而深入的分析,深刻揭示JVM的工作原理。 以實踐為導嚮,通過[0大0]量與實際生産環境相結閤的案例展示瞭解決各種常見JVM問題的技巧和佳實踐。 |
我是一名剛入行不久的Java開發者,在工作中經常會遇到一些疑難雜癥,比如程序運行緩慢、內存占用過高等問題,但往往摸不著頭腦,隻能通過搜索引擎尋找零散的解決方案。直到我翻閱瞭《深入理解Java虛擬機》,纔感覺找到瞭“救星”。這本書用通俗易懂的語言,將那些看似復雜的JVM底層原理一一展現在我麵前。從Java內存區域的劃分,到對象在堆中的創建過程,再到綫程的生命周期和狀態轉換,每一個知識點都講解得非常清晰。我特彆欣賞書中對GC日誌的解讀分析,這讓我學會瞭如何通過GC日誌來診斷JVM的性能瓶頸,並根據日誌信息調整JVM參數,比如堆大小、GC迴收器類型等,從而顯著提升程序的運行效率。這本書的價值在於,它不僅教會我“做什麼”,更重要的是教會我“為什麼這麼做”,讓我能夠更自信、更從容地應對日常開發中遇到的性能挑戰。
評分我是一名JVM的愛好者,一直對Java的底層運行機製充滿好奇。《深入理解Java虛擬機》這本書為我提供瞭一個絕佳的學習平颱。它不僅僅停留在對JVM各個組件的功能介紹,更深入地探討瞭其設計理念和實現原理。例如,在講解類加載機製時,作者詳細闡述瞭雙親委派模型,並解釋瞭為什麼需要這樣的設計,這讓我對Java的模塊化和安全性有瞭更深刻的理解。書中對字節碼指令的剖析也非常精彩,讓我能夠窺探到Java代碼在JVM中的真實“嘴臉”,這對於理解一些高級特性,比如注解處理器、動態代理等,非常有幫助。即使是對於一些初學者可能感到枯燥的底層細節,作者也通過豐富的圖示和生動的比喻,使其易於理解和消化。這本書讓我從一個Java使用者,逐漸蛻變為一個更能理解和掌控Java的開發者。
評分在過去的工作中,我曾多次因為JVM性能問題而焦頭爛額。在嘗試瞭各種零散的調優方法後,我偶然發現瞭《深入理解Java虛擬機》。這本書就像一股清流,為我解開瞭許多睏擾已久的謎團。它不僅僅是羅列JVM參數,而是從根本上講解瞭JVM的運行原理,讓我明白瞭每一個參數背後的含義以及它們對程序性能的影響。書中關於垃圾迴收的章節,是我最受益的部分。我曾對JVM頻繁的Full GC感到非常頭疼,通過學習書中對CMS和G1的詳細講解,我學會瞭如何分析GC日誌,找齣導緻Full GC的根本原因,並采取有效的措施進行優化,比如調整堆空間、調整GC綫程數、優化對象的生命周期等。這本書的實踐性非常強,讓我能夠學以緻用,直接解決實際開發中遇到的性能問題,極大地提升瞭我的工作效率和自信心。
評分這本書真是讓我大開眼界,雖然我之前也看過一些關於Java性能調優的書籍,但《深入理解Java虛擬機》的深度和廣度是前所未有的。作者對於JVM的各個方麵都進行瞭細緻入微的剖析,從內存模型、垃圾迴收機製,到類加載、字節碼執行,甚至是JIT編譯器的優化策略,都講解得非常透徹。我尤其喜歡其中關於垃圾迴收算法的章節,以往我總覺得GC隻是一個“黑盒子”,而這本書讓我清晰地瞭解瞭Serial、Parallel、CMS、G1等各種GC算法的工作原理、優缺點以及適用場景,這對於我日後排查內存泄漏、優化GC停頓時間非常有幫助。而且,書中不僅僅是理論的堆砌,還穿插瞭大量的實際案例和代碼示例,幫助我更好地理解抽象的概念。通過閱讀這本書,我感覺自己對Java的運行機製有瞭更深層次的認識,不再僅僅停留在API層麵,而是能夠從JVM這個更底層的角度去思考和解決問題。這種“知其所以然”的感覺,對於提升我的開發技能和代碼質量起到瞭至關重要的作用。
評分作為一名經驗豐富的Java架構師,我一直在尋找一本能夠幫助我深入理解JVM,從而指導我進行係統架構設計的書籍。《深入理解Java虛擬機》無疑滿足瞭我的需求。書中對於JVM的內存管理、綫程模型、並發控製以及性能調優的詳盡闡述,讓我對如何構建高可用、高性能的Java應用有瞭更清晰的思路。我特彆關注書中關於JIT編譯器優化的部分,瞭解瞭編譯器的熱點代碼探測、方法的內聯、逃逸分析等技術,這對我理解Java代碼的實際執行效率,以及如何編寫更適閤JIT優化的代碼提供瞭寶貴的指導。此外,書中對JVM監控和診斷工具的介紹,如JConsole、VisualVM、Arthas等,也極大地豐富瞭我的工具箱,讓我能夠更有效地進行綫上問題的排查和性能分析。這本書不僅僅是一本技術書籍,更像是一本幫助我提升架構設計能力的“內功心法”。
評分書不錯
評分包裝的很仔細
評分包裝的很仔細
評分很不錯的書,一直相信小互
評分可以
評分可以
評分啦咯啦咯啦咯讀讀讀讀
評分很好
評分很不錯的書,一直相信小互
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有