深入淺出 Java虛擬機設計與實現 ( 簡體 字) |
作者:華保健|責編:孫業//趙小花 | 類別:1. -> 程式設計 -> JAVA -> Java |
譯者: |
出版社:機械工業 | 3dWoo書號: 52823 詢問書籍請說出此書號!【有庫存】 NT售價: 495 元 |
出版日:4/1/2020 |
頁數:388 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111645245 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:出:Java虛擬機設計與實現》由國內編譯器和虛擬機方面的研究者執筆,詳細介紹了 Java 虛擬機設計與實現的各個方面,并給出了相關算法的實現。全書圍繞虛擬機架構,討論了虛擬機中的所有重要組件,包括類加載器、執行引擎、本地方法接口、異常處理、堆和垃圾收集、多線程及調試。 《深入淺出:Java虛擬機設計與實現》不僅關注對技術本身的介紹,還重點強調了這些技術所涉及的知識對讀者進一步掌握工具和提高軟件設計水平的重要作用,并給出了豐富的示例和*佳實踐。 《深入淺出:Java虛擬機設計與實現》適合 Java 程序員、對編譯器和虛擬機底層技術感興趣的工程人員,以及高等院校計算機相關專業的學生閱讀。 |
目錄:前 言 第 1 章 虛擬機架構 /1 1.1 Java 與 Java 虛擬機 /1 1.1.1 設計背景 /1 1.1.2 Java 技術棧的組成要素 /2 1.1.3 Java 字節碼 /3 1.2 Java 虛擬機架構 /5 1.3 實例:J 語言及其編譯 /7 1.3.1 J 語言語法 /7 1.3.2 棧式計算機 /13 1.3.3 J 字節碼 /17 1.3.4 J 語言編譯到 J 字節碼 /19 1.4 實例:J 虛擬機 /23 1.4.1 字節碼加載子系統 /23 1.4.2 字節碼驗證器 /24 1.4.3 解釋執行引擎 /27 第 2 章 類加載器 /30 2.1 實例:Java 的類加載 /30 2.2 類的二進制定義 /32 2.2.1 常量池 /34 2.2.2 接口 /36 2.2.3 字段 /37 2.2.4 方法 /37 2.2.5 屬性 /38 2.3 方法區 /41 2.3.1 代碼區 /41 2.3.2 運行時常量池 /45 2.3.3 類輔助數據結構 /47 2.4 類裝載 /49 2.4.1 遞歸下降裝載 /50 2.4.2 接口的裝載 /57 2.4.3 數組的裝載 /57 2.4.4 基本類的裝載 /59 2.5 驗證 /61 2.5.1 為什么要進行驗證 /61 2.5.2 驗證的目標 /63 2.5.3 實例:驗證規則 /63 2.5.4 結構化約束 /68 2.5.5 類型推導 /69 2.6 準備 /75 2.6.1 靜態字段的準備 /76 2.6.2 非靜態字段的準備 /77 2.6.3 虛方法表 /80 2.7 解析 /86 2.7.1 實例:類的解析 /86 2.7.2 類的解析 /88 2.7.3 字段的解析 /89 2.7.4 方法的解析 /91 2.7.5 接口方法的解析 /98 2.7.6 字符串常量的解析 /100 2.7.7 常量池其他表項的解析 /101 2.8 初始化 /101 2.8.1 類初始化方法 /102 2.8.2 類初始化算法 /103 2.9 類加載各階段的執行順序 /110 2.9.1 急切策略和惰性策略 /111 2.9.2 類解析和類初始化的耦合性 /113 2.10 自定義類加載器 /114 2.10.1 獨立加載模型 /116 2.10.2 雙親委派模型 /118 2.11 實例:類加載器的典型應用 /123 2.11.1 動態代理 /124 2.11.2 熱替換 /133 第 3 章 執行引擎 /139 3.1 棧幀結構 /139 3.2 調用規范 /140 3.3 執行引擎架構 /141 3.3.1 序列式架構 /142 3.3.2 跳轉表架構 /143 3.4 執行引擎實現 /145 3.4.1 常量加載指令 /145 3.4.2 數據加載指令 /147 3.4.3 數據存儲指令 /149 3.4.4 棧操作指令 /151 3.4.5 數學運算指令 /152 3.4.6 數值轉換指令 /155 3.4.7 比較運算指令 /157 3.4.8 控制轉移指令 /159 3.4.9 引用指令 /176 3.4.10 擴展與虛擬機保留指令 /185 3.5 本地方法執行引擎 /187 3.6 可重入方法 /194 3.7 匯編模板 /198 第 4 章 本地方法接口 /201 4.1 實例:Java 本地方法 /201 4.2 方法綁定 /202 4.2.1 本地方法的數據結構 /203 4.2.2 動態庫加載 /205 4.2.3 動態綁定 /206 4.2.4 靜態綁定 /209 4.3 本地方法攔截 /213 4.3.1 攔截機制 /213 4.3.2 耦合性 /216 4.3.3 反射 /217 4.4 本地方法回調 Java 方法 /218 4.4.1 JNI 回調函數 /220 4.4.2 本地方法棧幀 /223 第 5 章 異常處理 /226 5.1 實例:Java 異常處理 /226 5.2 異常棧 /228 5.3 異常表 /236 5.4 棧回滾 /243 5.5 本地方法異常 /247 5.6 其他問題 /250 5.6.1 隱式異常 /250 5.6.2 異常處理與多線程 /253 5.6.3 執行效率 /254 第 6 章 堆和垃圾收集 /255 6.1 實例:對象與垃圾 /255 6.1.1 語法垃圾與語義垃圾 /256 6.1.2 內存泄漏 /257 6.2 堆 /258 6.2.1 堆數據結構 /258 6.2.2 堆分配接口 /259 6.3 存儲布局 /259 6.3.1 對象的存儲布局 /259 6.3.2 類的存儲布局 /263 6.3.3 數組的存儲布局 /264 6.4 垃圾收集 /265 6.4.1 根節點 /266 6.4.2 復制收集 /270 6.4.3 終結 /276 6.4.4 垃圾收集的觸發 /280 6.5 本地方法和垃圾收集 /281 6.5.1 局部和全局引用 /281 6.5.2 對象引用相關 JNI 函數的實現 /283 6.6 其他問題 /285 6.6.1 多線程與垃圾收集 /285 6.6.2 無中斷垃圾收集 /289 6.6.3 類型標記 /291 第 7 章 多線程 /293 7.1 線程語義模型 /293 7.1.1 線程方法 /293 7.1.2 線程狀態 /294 7.1.3 實例:線程中斷 /297 7.2 管程 /303 7.2.1 管程數據結構 /303 7.2.2 接口與實現 /307 7.2.3 管程指令 /314 7.2.4 管程與對象 /316 7.3 多線程的實現 /318 7.3.1 線程數據結構 /319 7.3.2 創建線程對象 /321 7.3.3 啟動 /323 7.3.4 讓出 /325 7.3.5 睡眠 /325 7.3.6 中斷 /327 7.3.7 停止、掛起和繼續 /335 7.3.8 原子性和可見性 /337 7.3.9 線程與信號 /338 7.4 多線程與虛擬機其他子系統的交互 /342 7.4.1 全局數據結構與鎖 /343 7.4.2 類初始化 /345 7.4.3 垃圾收集 /350 第 8 章 調試 /357 8.1 調試器架構 /357 8.1.1 客戶端{服務器架構 /358 8.1.2 JDWP 調試協議 /359 8.1.3 數據類型 /360 8.1.4 實例:斷點 /361 8.2 調試代理 /364 8.2.1 通信模塊 /365 8.2.2 執行引擎模塊 /366 8.2.3 對象管理模塊 /370 8.2.4 事件處理模塊 /371 8.3 實例:jdb 調試器 /376 8.4 調試的其他問題 /384 8.4.1 薛定諤困境 /384 8.4.2 調試與安全性 /386 8.4.3 實例:JVM 滲透 /387 |
序: |