揭秘Java虛擬機:JVM設計原理與實現

揭秘Java虛擬機:JVM設計原理與實現 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
封亞飛 著

下載链接在页面底部


點擊這裡下載
    

想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-23


圖書介紹


齣版社: 電子工業齣版社
ISBN:9787121315411
版次:1
商品編碼:12095193
品牌:Broadview
包裝:平裝
開本:16開
齣版時間:2017-06-01
用紙:膠版紙
頁數:700


類似圖書 點擊查看全場最低價

相關圖書





圖書描述

産品特色

編輯推薦

  

  Java工程師高質量成長的必讀本,榖歌官方認可的android開發語言Kotlin的基石。看透JVM設計思想與原理,徹底領悟JAVA編程精髓,以不變應萬變!

Java是一門非常流行的程序語言,但是,Java程序到底是如何運行的?如何寫齣更高效的Java代碼……?這些令人睏擾的問題,都可以從《揭秘Java虛擬機:JVM設計原理與實現》中找到答案。

  隨著互聯網的極速發展,現在的Java服務端應用需要應對極高的並發訪問和大量的數據交互,如果能深入地理解Java虛擬機的核心原理和實現細節,不僅可以幫助程序員自如地應對變化莫測的各類狀況,也可以幫助程序員寫齣優秀高效的代碼。

  《揭秘Java虛擬機:JVM設計原理與實現》正是這樣一部修煉Java內功的武學秘笈。它不僅詳細闡述瞭JVM的設計思路與原理,讓讀者能夠深刻理解JVM的運行機製,而且更進一步地分析瞭JVM在發展過程中每一次技術選擇的必然性——這樣的分析讓讀者得以跨越時空,在思想上與前輩大師們産生共鳴,實現精神上的交流,真正領悟JVM的精髓。

  更為難得的是,看似艱深莫測的“大道理”,卻被作者用曉暢明白、幽默有趣的文字層層化解瞭:《揭秘Java虛擬機:JVM設計原理與實現》在閱讀體驗上毫無枯燥之感,相反,卻能讓你在“頓悟”的當下,會心而笑,不忍釋捲!

  不必猶豫,無須比較,就是它——《揭秘Java虛擬機:JVM設計原理與實現》!


  

內容簡介

  

  《揭秘Java虛擬機:JVM設計原理與實現》從源碼角度解讀HotSpot的內部實現機製,本版本主要包含三大部分——JVM數據結構設計與實現、執行引擎機製及內存分配模型。

  數據結構部分包括Java字節碼文件格式、常量池解析、字段解析、方法解析。每一部分都給齣詳細的源碼實現分析,例如字段解析一章,從源碼層麵詳細分析瞭Java字段重排、字段繼承等關鍵機製。再如方法解析一章,給齣瞭Java多態特性在源碼層麵的實現方式。《揭秘Java虛擬機:JVM設計原理與實現》通過直接對源代碼的分析,從根本上梳理和澄清Java領域中的關鍵概念和機製。

  執行引擎部分包括Java方法調用機製、棧幀創建機製、指令集架構與解釋器實現機製。這一話題是《揭秘Java虛擬機:JVM設計原理與實現》技術含量高的部分,需要讀者具備一定的匯編基礎。不過韆萬不要被“匯編”這個詞給嚇著,其實在作者看來,匯編相比於高級語言而言,語法非常簡單,語義也十分清晰。執行引擎部分重點描述Java源代碼如何轉換為字節碼,又如何從字節碼轉換為機器指令從而能夠被物理CPU所執行的技術實現。同時詳細分析瞭Java函數堆棧的創建全過程,在源碼分析的過程中,帶領讀者從本質上理解到底什麼是Java函數堆棧和棧幀,以及棧幀內部的詳細結構。

  內存分配部分主要包括類型創建與加載、對象實例創建與內存分配,例如new關鍵字的工作機製,import關鍵字的作用,再如java.lang.ClassLoader.loadClass()接口的本地實現機製。

  《揭秘Java虛擬機:JVM設計原理與實現》並不是簡單地分析源碼實現,而是在描述HotSpot內部實現機製的同時,分析瞭HotSpot如此這般實現的技術必然性。讀者在閱讀《揭秘Java虛擬機:JVM設計原理與實現》的過程中,將會在很多地方看到作者本人的這種思考。


  

精彩書評

  

  Java從1995年發布以後,已經發展成為一門流行的編程語言。業界也有無數的書介紹Java語言的方方麵麵。但是,這本書不僅講解瞭Java虛擬機的內部實現機製,還深入分析瞭為什麼要這麼實現。每一種技術設計的背後,都有其必然性。能夠知其然、並知其所以然,纔能透過現象看本質,舉一反三,實現技術升華。亞飛有多年的Java實踐,尤其是在菜鳥網絡,需要具備處理很多高並發、大型工程的架構經驗,相信他在書中會有更多的視角分享給讀者。

  ——王文彬(菲青),菜鳥CTO


  

  作者憑藉資深的C與Java技術功底以及多年對於JVM的深入研究編寫的這邊書,真正從虛擬機指令執行處理層麵,結閤JVM規範的設計原理,完整和詳盡地闡述瞭Java虛擬機在處理類、方法和代碼時的設計和實現細節。同時書中大量的代碼和指令細節能夠讓程序員更加直接地理解相關原理。

  這是一本優秀的技術工具書,可以讓閱讀者更加深刻地理解虛擬機的原理和細節,值得每一位具有極客精神、追求細節的優秀程序員反復閱讀和收藏。

  ——陌銘,菜鳥平颱技術部架構師


  

  本書是一本通過深入結閤HotSpot源代碼來解釋Java虛擬機工作機理的書籍。概念是一切知識結構的基石。通過閱讀本書,Java工程師可以瞭解和掌握Java虛擬機的核心概念,可以領會在工作中如何開發閤理的、高效的Java應用,如何有效地解決、排查Java問題。

  ——李三紅,阿裏巴巴/螞蟻金服JVM架構師


  

  作為一名Java程序員,我們寫過很多Java程序。但是,Java程序到底是如何運行的?如何寫齣更高效的Java代碼……?這些問題不僅是初學者的睏惑,也是很多老司機的短闆。這些問題歸根結底都要從JVM中去尋找答案,而國內能深入分析JVM的書並不多。亞飛撰寫的本書不僅深入分析瞭Java虛擬機的運行機製與原理,而且在錶達上非常通俗易懂,可以幫助讀者深入理解並掌握Java語言的核心細節,在開發工作中以不變應萬變,寫齣優秀高效的代碼,值得細讀。

  ——許令波(君山),《深入分析JavaWeb技術內幕(修訂版)》作者


  

目錄

第1 章 Java 虛擬機概述 1

1.1 從機器語言到Java——詹爺,你好 1

1.2 兼容的選擇:一場生産力的革命 6

1.3 中間語言翻譯 10

1.3.1 從中間語言翻譯到機器碼 11

1.3.2 通過C 程序翻譯 11

1.3.3 直接翻譯為機器碼 13

1.3.4 本地編譯 16

1.4 神奇的指令 18

1.4.1 常見匯編指令 20

1.4.2 JVM 指令 21

1.5 本章總結 24

第2 章 Java 執行引擎工作原理:方法調用 25

2.1 方法調用 26

2.1.1 真實的機器調用 26

2.1.2 C 語言函數調用 41

2.2 JVM 的函數調用機製 47

2.3 函數指針 53

2.4 CallStub 函數指針定義 60

2.5 _call_stub_entry 例程 72

2.6 本章總結 114

第3 章 Java 數據結構與麵嚮對象 115

3.1 從Java 算法到數據結構 116

3.2 數據類型簡史 120

3.3 Java 數據結構之偶然性 127

3.4 Java 類型識彆 130

3.4.1 class 字節碼概述 131

3.4.2 魔數與JVM 內部的int 類型 134

3.4.3 常量池與JVM 內部對象模型 135

3.5 大端與小端 141

3.5.1 大端和小端的概念 144

3.5.2 大小端産生的本質原因 146

3.5.3 大小端驗證 147

3.5.4 大端和小端産生的場景 149

3.5.5 如何解決字節序反轉 152

3.5.6 大小端問題的避免 154

3.5.7 JVM 對字節碼文件的大小端處理 154

3.6 本章總結 157

第4 章 Java 字節碼實戰 158

4.1 字節碼格式初探 158

4.1.1 準備測試用例 159

4.1.2 使用javap 命令分析字節碼文件 159

4.1.3 查看字節碼二進製 162

4.2 魔數與版本 163

4.2.1 魔數 165

4.2.2 版本號 165

4.3 常量池 166

4.3.1 常量池的基本結構 166

4.3.2 JVM 所定義的11 種常量 167

4.3.3 常量池元素的復閤結構 167

4.3.4 常量池的結束位置 169

4.3.5 常量池元素總數量 169

4.3.6 第一個常量池元素 170

4.3.7 第二個常量池元素 171

4.3.8 父類常量 171

4.3.9 變量型常量池元素 172

4.4 訪問標識與繼承信息 174

4.4.1 access_flags 174

4.4.2 this_class 175

4.4.3 super_class 176

4.4.4 interface 177

4.5 字段信息 177

4.5.1 fields_count 177

4.5.2 field_info fields[fields_count] 178

4.6 方法信息 182

4.6.1 methods_count 182

4.6.2 method_info methods[methods_count] 183

4.7 本章迴顧 203

第5 章 常量池解析 204

5.1 常量池內存分配 206

5.1.1 常量池內存分配總體鏈路 207

5.1.2 內存分配 212

5.1.3 初始化內存 221

5.2 oop-klass 模型 222

5.2.1 兩模型三維度 223

5.2.2 體係總覽 224

5.2.3 oop 體係 226

5.2.4 klass 體係 229

5.2.5 handle 體係 232

5.2.6 oop、klass、handle 的相互轉換 237

5.3 常量池klass 模型(1) 242

5.3.1 klassKlass 實例構建總鏈路 244

5.3.2 為klassOop 申請內存 248

5.3.3 klassOop 內存清零 251

5.3.4 初始化mark 251

5.3.5 初始化klassOop._metadata 256

5.3.6 初始化klass 257

5.3.7 自指 258

5.4 常量池klass 模型(2) 258

5.4.1 constantPoolKlass 模型構建 258

5.4.2 constantPoolOop 與klass 261

5.4.3 klassKlass 終結符 264

5.5 常量池解析 264

5.5.1 constantPoolOop 域初始化 264

5.5.2 初始化tag 266

5.5.3 解析常量池元素 267

5.6 本章總結 276

第6 章 類變量解析 277

6.1 類變量解析 278

6.2 偏移量 282

6.2.1 靜態變量偏移量 282

6.2.2 非靜態變量偏移量 284

6.2.3 Java 字段內存分配總結 309

6.3 從源碼看字段繼承 315

6.3.1 字段重排與補白 316

6.3.2 private 字段可被繼承嗎 322

6.3.3 使用HSDB 驗證字段分配與繼承 325

6.3.4 引用類型變量內存分配 333

6.4 本章總結 338

第7 章 Java 棧幀 340

7.1 entry_point 例程生成 341

7.2 局部變量錶創建 349

7.2.1 constMethod 的內存布局 349

7.2.2 局部變量錶空間計算 352

7.2.3 初始化局部變量區 355

7.3 堆棧與棧幀 364

7.3.1 棧幀是什麼 364

7.3.2 硬件對堆棧的支持 383

7.3.3 棧幀開闢與迴收 386

7.3.4 堆棧大小與多綫程 388

7.4 JVM 的棧幀 392

7.4.1 JVM 棧幀與大小確定 392

7.4.2 棧幀創建 396

7.4.3 局部變量錶 418

7.5 棧幀深度與slot 復用 430

7.6 最大操作數棧與操作棧復用 433

7.7 本章總結 436

第8 章 類方法解析 437

8.1 方法簽名解析與校驗 442

8.2 方法屬性解析 444

8.2.1 code 屬性解析 444

8.2.2 LVT&LVTT; 446

8.3 創建methodOop 452

8.4 Java 方法屬性復製 456

8.5 458

8.6 查看運行時字節碼指令 479

8.7 vtable 486

8.7.1 多態 486

8.7.2 C++中的多態與vtable 488

8.7.3 Java 中的多態實現機製 490

8.7.4 vtable 與invokevirtual 指令 497

8.7.5 HSDB 查看運行時vtable 499

8.7.6 miranda 方法 502

8.7.7 vtable 特點總結 505

8.7.8 vtable 機製邏輯驗證 506

8.8 本章總結 508

第9 章 執行引擎 510

9.1 執行引擎概述 511

9.2 取指 513

9.2.1 指令長度 516

9.2.2 JVM 的兩級取指機製 524

9.2.3 取指指令放在哪 529

9.2.4 程序計數器在哪裏 531

9.3 譯碼 532

9.3.1 模闆錶 532

9.3.2 匯編器 538

9.3.3 匯編 546

9.4 棧頂緩存 555

9.5 棧式指令集 563

9.6 操作數棧在哪裏 574

9.7 棧幀重疊 578

9.8 entry_point 例程機器指令 583

9.9 執行引擎實戰 585

9.9.1 一個簡單的例子 585

9.9.2 字節碼運行過程分析 587

9.10 字節碼指令實現 594

9.10.1 iconst_3 594

9.10.2 istore_0 596

9.10.3 iadd 597

9.11 本章總結 598

第10 章 類的生命周期 599

10.1 類的生命周期概述 599

10.2 類加載 602

10.2.1 類加載——鏡像類與靜態字段 609

10.2.2 Java 主類加載機製 614

10.2.3 類加載器的加載機製 620

10.2.4 反射加載機製 621

10.2.5 import 與new 指令 622

10.3 類的初始化 623

10.4 類加載器 626

10.4.1 類加載器的定義. 626

10.4.2 係統類加載器與擴展類加載器創建 632

10.4.3 雙親委派機製與破壞 634

10.4.4 預加載 636

10.4.5 引導類加載 638

10.4.6 加載、鏈接與延遲加載 639

10.4.7 父加載器 643

10.4.8 加載器與類型轉換 646

10.5 類實例分配 647

10.5.1 棧上分配與逃逸分析 650

10.5.2 TLAB 654

10.5.3 指針碰撞與eden 區分配 655

10.5.4 清零 656

10.5.5 偏嚮鎖 657

10.5.6 壓棧與取指 658

10.6 本章總結 660

前言/序言

  推薦序

  從Java誕生至今已有二十餘年,基於虛擬機的技術屏蔽瞭底層環境的差異,一次編譯,隨處運行的思想促進瞭整個IT上層技術應用産生瞭翻天覆地的變化。Java作為服務端應用語言的首選,確實降低瞭很多學習和應用門檻。現實生活中,絕大多數Java程序員對於虛擬機的原理和實現瞭解並不深入,也似乎並不那麼關心。而隨著互聯網的極速發展,現在的Java服務端應用需要應對極高的並發訪問和大量的數據交互,從機製和設計原理上瞭解虛擬機的核心原理和實現細節顯然能夠幫助Java程序員編寫齣更高效優質的代碼。

  雖然市麵上從Java使用者角度介紹虛擬機的書也有不少佳作,但一般較為寬泛,尤其在談及虛擬機如何運行、處理的細節時總有些淺嘗輒止的遺憾。而作者憑藉深厚的C與Java技術功底以及多年對於JVM的深入研究編寫的這本書,真正從虛擬機指令執行處理層麵,結閤JVM規範的設計原理,完整和詳盡地闡述瞭Java虛擬機在處理類、方法和代碼時的設計和實現細節。書中大量的代碼和指令細節能夠讓程序員更加直接地理解相關原理。

  這是一本優秀的技術工具書,可以讓閱讀者更加深刻地理解虛擬機的原理和處理細節,值得每一位具有極客精神、追求細節的優秀程序員反復閱讀和收藏。

  菜鳥平颱技術部陌銘

  前言

  文明需要創造,也需要傳承。JVM作為一款虛擬機,本身便是技術之集大成者,裏麵包含方方麵麵的底層技術知識。拋開如今Java如日中天之態勢不說,純粹從技術層麵看,JVM也值得廣大技術愛好者深入研究。可以說,從最新的硬件特性,到最新的軟件技術,隻要技術被證明是成熟的,都會在JVM裏麵見到其蹤影。JDK的每一次更新,從內部到核心類庫,JVM都會及時引入這些最新的技術或者算法,這便是技術傳承意義之所在。隨著雲計算、大數據、人工智能等最新技術的發展,Java技術生態圈也日益龐大,JVM與底層平颱以及與其他編程語言和技術的交互、交織日益深入,這些都離不開對JVM內部機製的深入理解。如果說以前在中間件與框架領域的大展身手,依靠的是Java語言層麵的特性和技術,那麼以後越來越多的技術紅利將會因JVM層麵之創新而得以顯現。

  被真相所濛蔽,是一件痛苦的事。我們在一個被層層封裝的世界裏進行開發和設計,操作係統、各種中間件與框架,將底層世界隱藏得結結實實。我們一方麵享受著高級編程語言所帶來的高效 揭秘Java虛擬機:JVM設計原理與實現 下載 mobi epub pdf txt 電子書 格式


揭秘Java虛擬機:JVM設計原理與實現 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

揭秘Java虛擬機:JVM設計原理與實現 下載 mobi pdf epub txt 電子書 格式 2024

揭秘Java虛擬機:JVM設計原理與實現 下載 mobi epub pdf 電子書
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

在歌舞升平的城市 忍不住迴頭看我的城池

評分

書很好,沒有拆過,內容很新穎,感覺受益良多,一本相當不錯的書!

評分

在歌舞升平的城市 忍不住迴頭看我的城池

評分

看瞭一部分,內容還不錯

評分

吾消費京東商城數年,深知各産品琳琅滿目、然,唯此寶物與眾皆不同,為齣淤泥之清蓮,使吾為之動容,心馳神往,以至茶飯不思,寢食難安,輾轉反側無法忘懷,於是乎緊衣縮食,湊齊銀兩,傾吾之所有而能買,東哥之熱心、快遞員之殷切,無不讓人感激涕零,可謂迅雷不及掩耳盜鈴兒響叮當仁不讓世界充滿愛,待打開包裹之時頓時金光四射:屋內升起七彩祥雲,處處皆是祥和之氣。吾驚訝之餘甚是欣喜若狂,嗚呼哀哉!此寶乃是天上物,人間又得幾迴求!遂沐浴更衣,焚香禱告後與人共賞此寶,人皆贊嘆不已,故生此寶物款型及做工,超高性價比之慨且贊吾獨具慧眼與時尚品位,産品介紹果然句句實言,毫無誇大欺瞞之嫌,實乃大傢之風範,忠義之商賈!我為什麼喜歡在京東買東西,因為今天買明天就可以送到。我為什麼每個商品的評價都一樣,因為在京東買的東西太多太多瞭,導緻積纍瞭很多未評價的訂單,所以我統一用段話作為評價內容。

評分

這是一個靈動的故事,關於一個男人以及一群可愛的小動物們的故事,如我們年復一年的歲月日復一日的生活,他與他所居住的鄉村,他與那些可愛的小動物以及它們的主人之間,無處不在的那些普通的瑣碎的蕪雜的美好被無限地延長…….當然像我們尋常的生活一樣,也有很多不美好、無奈甚至是睏苦,還有他即使全年無休無止地忙碌,一周工作七天,晚上深夜也要隨時準備接診,而且非常辛苦,跟生産的母牛在石子地上翻滾拼鬥到精疲力盡,被踢、被壓、被蹬,糞便排泄物甩得滿身都是……但是還是

評分

生活是這樣子 不如詩

評分

破的城市 平淡日子 他要尋找生活的刺

評分

京東現在特彆坑,大傢彆買瞭,秒殺的商品一件也不發

類似圖書 點擊查看全場最低價

揭秘Java虛擬機:JVM設計原理與實現 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.cndgn.com All Rights Reserved. 新城書站 版权所有