Java是目前用戶最多、使用範圍最廣的軟件開發技術,Java的技術體系主要由支撐Java程序運行的虛擬機、提供各開發領域接口支持的Java類庫、Java編程語言及許許多多的第三E方Java框架(如Spring、 MyBatis等) 構成。在國內,有關Java類庫API、Java語言語法及第三方框架的技術資料和書籍非常豐富,相比而言,有關Java虛擬機的資料卻顯得異常貧乏。
隨着Java技術的不斷髮展,它已被應用於越來越多的領域之中。其中一些領域,如互聯網、能源、金融、通信等,對程序的性能、穩定性和擴展性方面會有極高的要求。一-段程序很可能在10個人同時使用時完全正常,但是在10000個人同時使用時就會緩慢、死鎖甚至崩潰。毫無疑問,要滿足10000個人同時使用,需要更高性能的物理硬件,但是在絕大多數情況下,提升硬件性能無法等比例提升程序的運行性能和併發能力,甚至有可能對程序運行狀況沒有任何改善。這裏面有Java虛擬機的原因:爲了達到「所有硬件提供一致的虛擬平臺」的目的,犧牲了- -些硬件相關的性能特性。更重要的是人爲原因:如果開發人員不瞭解虛擬機諸多技術特性的運行原理,就無法寫出最適合虛擬機運行和自優化的代碼。
讓我們一起走進虛擬機的世界吧!
添加VX:tkzl6666 免費獲取《深入理解Java虛擬機第三版》文檔資料
世界上並沒有完美的程序,但我們並不因此而沮喪,因爲寫程序本來就是一個不斷追求完美的過程。
1.1概述
1.2 Java技術體系
1.3 Java發展史
1.4 Java虛擬機家族
1.5展望J ava技術的未來
1.6實戰:自己編譯JDK
1.7本章小結
Java與C+ +之間有一堵由內存動態分配和垃圾收集技術所圍成的高牆,牆外面的人想進去,牆裏面的人卻想出來。
第2章Java內存區域與內存溢出異常
2.1概述
2.2運行時數據區域
2.3 HotSpot虛擬機對象探祕
2. 4實戰: 0utOfMem oryErr or異常
2.5本章小結
第3章垃圾收集器與內存分配策略
3.1概述
3.2對象已死?
3.3垃圾收集算法
3.4 HotSp ot的算法細節實現
3.5經典垃圾收集器
3.6低延遲垃圾收集器
3.7選擇合適的垃圾收集器
3.8實戰:內存分配與回收策略
3.9小結
第4章虛擬機性能監控、故障處理工具
4.1概述
4.2基礎故障處理工具
4.3可視化故障處理工具
4.4 HotSpot虛擬機插件及工具
4.5本章小結
第5章調優案例分析與實戰
5.1概述
5.2案例分析
5.3實戰: Eclipse運行速度調優
5.4本章小結
代碼編譯的結果從本地機器碼轉變爲字節碼,是存儲格式發展的一-小步,卻是編程語言發展的一大步。
第6章:類文件結構
6.1概述
6.2無關性的基石
6.3 Class類文件的結構
6.4字節碼指令簡介
6.5公有設計,私有實現
6.6 Class文件結構的發展
6.7本章小結
第7章:虛擬機類加載機制
7. 1概述
7.2類加載的時機
7.3類加載的過程
7.4類加載器
7.5 Java模塊化系統
7.6本章小結
第8章:虛擬機字節碼執行引擎
8.1概述
8.2運行時棧幀結構
8.3方法調用
8.4動態類型語言支持
8.5基於棧的字節碼解釋執行引擎
8.6本章小結
第9章:類加載及執行子系統的案例與實戰
9.1概述
9.2案例分析
9.3實戰:自己動手實現遠程執行功能
9.4本章小結
從計算機程序出現的第一天起, 對效率的追逐就是程序員天生的堅定信仰,這個過程猶如一場沒有終點、永不停歇的F1方程式競賽,程序員是車手,技術平臺則是在賽道上飛馳的賽車。
第10章:前端編譯與優化
10. 1概述
10.2 Javac編譯器
10.3 Java語法糖的味道
10. 4實戰:插入式註解處理器
10. 5本章小結
第11章:後端編譯與優化
11. 1概述
11.2即時編譯器
11.3提前編譯器
11.4編譯器優化技術
11.5實戰:深入理解Gr aal編譯器
11.6本章小結
第12章:Java內存模型與線程
併發處理的廣泛應用是AmdahI定律代替摩爾定律成爲計算機性能發展源動力的根本原因,也是人類壓榨計算機運算能力的最有力武器。
12.1概述
12.2硬件的效率與一致性
12.3 Java內存模型
12. 4 Java與線程
12.5 Java與協程
12.6本章小結
第13章:線程安全與 鎖優化
我們瞭解虛擬機Java內存模型的結構及操作,並且講解了原子性、可見性、有序性在Java內存模型中的體現,介紹了先行發生原則的規則及使用。另外,我們還了解了線程在Java語言之中是如何實現的,以及代表Java未來多線程發展的新併發模型的工作原理。
關於「高效併發"這個話題,在本章中主要介紹了虛擬機如何實現「併發」在下一章中,我們的主要關注點將是虛擬機如何實現"高效」,以及虛擬機對我們編寫的併發代碼提供了什麼樣的優化手段。
13.1概述
13.2線程安全
13.3鎖優化
13.4本章小結