幫助中心 | 我的帳號 | 關於我們

深入淺出(Java虛擬機設計與實現)

  • 作者:華保健|責編:孫業//趙小花
  • 出版社:機械工業
  • ISBN:9787111645245
  • 出版日期:2020/04/01
  • 裝幀:平裝
  • 頁數:388
人民幣:RMB 99 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書由國內編譯器和虛擬機方面的研究者執筆,詳細介紹了Java虛擬機設計與實現的各個方面,並給出了相關演算法的實現。全書圍繞虛擬機架構,討論了虛擬機中的所有重要組件,包括類載入器、執行引擎、本地方法介面、異常處理、堆和垃圾收集、多線程及調試。
    本書不僅關注對技術本身的介紹,還重點強調了這些技術所涉及的知識對讀者進一步掌握工具和提高軟體設計水平的重要作用,並給出了豐富的示例和最佳實踐。
    本書適合Java程序員、對編譯器和虛擬機底層技術感興趣的工程人員,以及高等院校電腦相關專業的學生閱讀。

作者介紹
華保健|責編:孫業//趙小花
    華保健,中國科學技術大學軟體學院助理教授,在中國科學技術大學電腦系獲博士學位,曾在美國Clemson大學做訪問學者。研究方向包括程序設計語言、編譯器設計與實現、基於軟體的電腦安全等。主持或參與國家自然科學基金等各類研究課題10余項;在國內外著名期刊和會議上發表論文40余篇,出版專著2部,申請專利數十項。曾獲得CCF-騰訊犀牛鳥專項研究計劃支持、中國科學技術大學專業學位研究生教育先進個人、科大訊飛獎教金等獎勵榮譽。近年來致力於編譯原理在國內的教育和普及,在網易雲課堂等平台開設編譯原理相關開放課程,累計學員已超過萬人。

目錄
前言
第1章  虛擬機架構
  1.1  Java與Java虛擬機
    1.1.1  設計背景
    1.1.2  Java技術棧的組成要素
    1.1.3  Java位元組碼
  1.2  Java虛擬機架構
  1.3  實例:J語言及其編譯
    1.3.1  J語言語法
    1.3.2  棧式電腦
    1.3.3  J位元組碼
    1.3.4  J語言編譯到J位元組碼
  1.4  實例:J虛擬機
    1.4.1  位元組碼載入子系統
    1.4.2  位元組碼驗證器
    1.4.3  解釋執行引擎
第2章  類載入器
  2.1  實例:Java的類載入
  2.2  類的二進位定義
    2.2.1  常量池
    2.2.2  介面
    2.2.3  欄位
    2.2.4  方法
    2.2.5  屬性
  2.3  方法區
    2.3.1  代碼區
    2.3.2  運行時常量池
    2.3.3  類輔助數據結構
  2.4  類裝載
    2.4.1  遞歸下降裝載
    2.4.2  介面的裝載
    2.4.3  數組的裝載
    2.4.4  基本類的裝載
  2.5  驗證
    2.5.1  為什麼要進行驗證
    2.5.2  驗證的目標
    2.5.3  實例:驗證規則
    2.5.4  結構化約束
    2.5.5  類型推導
  2.6  準備
    2.6.1  靜態欄位的準備
    2.6.2  非靜態欄位的準備
    2.6.3  虛方法表
  2.7  解析
    2.7.1  實例:類的解析
    2.7.2  類的解析
    2.7.3  欄位的解析
    2.7.4  方法的解析
    2.7.5  介面方法的解析
    2.7.6  字元串常量的解析

    2.7.7  常量池其他表項的解析
  2.8  初始化
    2.8.1  類初始化方法
    2.8.2  類初始化演算法
  2.9  類載入各階段的執行順序
    2.9.1  急切策略和惰性策略
    2.9.2  類解析和類初始化的耦合性
  2.10  自定義類載入器
    2.10.1  獨立載入模型
    2.10.2  雙親委派模型
  2.11  實例:類載入器的典型應用
    2.11.1  動態代理
    2.11.2  熱替換
第3章  執行引擎
  3.1  棧幀結構
  3.2  調用規範
  3.3  執行引擎架構
    3.3.1  序列式架構
    3.3.2  跳轉表架構
  3.4  執行引擎實現
    3.4.1  常量載入指令
    3.4.2  數據載入指令
    3.4.3  數據存儲指令
    3.4.4  棧操作指令
    3.4.5  數學運算指令
    3.4.6  數值轉換指令
    3.4.7  比較運算指令
    3.4.8  控制轉移指令
    3.4.9  引用指令
    3.4.10  擴展與虛擬機保留指令
  3.5  本地方法執行引擎
  3.6  可重入方法
  3.7  彙編模板
第4章  本地方法介面
  4.1  實例:Java本地方法
  4.2  方法綁定
    4.2.1  本地方法的數據結構
    4.2.2  動態庫載入
    4.2.3  動態綁定
    4.2.4  靜態綁定
  4.3  本地方法攔截
    4.3.1  攔截機制
    4.3.2  耦合性
    4.3.3  反射
  4.4  本地方法回調Java方法
    4.4.1  JNI回調函數
    4.4.2  本地方法棧幀
第5章  異常處理
  5.1  實例:Java異常處理
  5.2  異常棧

  5.3  異常表
  5.4  棧回滾
  5.5  本地方法異常
  5.6  其他問題
    5.6.1  隱式異常
    5.6.2  異常處理與多線程
    5.6.3  執行效率
第6章  堆和垃圾收集
  6.1  實例:對象與垃圾
    6.1.1  語法垃圾與語義垃圾
    6.1.2  內存泄漏
  6.2  堆
    6.2.1  堆數據結構
    6.2.2  堆分配介面
  6.3  存儲布局
    6.3.1  對象的存儲布局
    6.3.2  類的存儲布局
    6.3.3  數組的存儲布局
  6.4  垃圾收集
    6.4.1  根節點
    6.4.2  複製收集
    6.4.3  終結
    6.4.4  垃圾收集的觸發
  6.5  本地方法和垃圾收集
    6.5.1  局部和全局引用
    6.5.2  對象引用相關JNI函數的實現
  6.6  其他問題
    6.6.1  多線程與垃圾收集
    6.6.2  無中斷垃圾收集
    6.6.3  類型標記
第7章  多線程
  7.1  線程語義模型
    7.1.1  線程方法
    7.1.2  線程狀態
    7.1.3  實例:線程中斷
  7.2  管程
    7.2.1  管程數據結構
    7.2.2  介面與實現
    7.2.3  管程指令
    7.2.4  管程與對象
  7.3  多線程的實現
    7.3.1  線程數據結構
    7.3.2  創建線程對象
    7.3.3  啟動
    7.3.4  讓出
    7.3.5  睡眠
    7.3.6  中斷
    7.3.7  停止、掛起和繼續
    7.3.8  原子性和可見性
    7.3.9  線程與信號

  7.4  多線程與虛擬機其他子系統的交互
    7.4.1  全局數據結構與鎖
    7.4.2  類初始化
    7.4.3  垃圾收集
第8章  調試
  8.1  調試器架構
    8.1.1  客戶端{伺服器架構
    8.1.2  JDWP調試協議
    8.1.3  數據類型
    8.1.4  實例:斷點
  8.2  調試代理
    8.2.1  通信模塊
    8.2.2  執行引擎模塊
    8.2.3  對象管理模塊
    8.2.4  事件處理模塊
  8.3  實例:jdb調試器
  8.4  調試的其他問題
    8.4.1  薛定諤困境
    8.4.2  調試與安全性
    8.4.3  實例:JVM滲透

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032