日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解java虚拟机 (二) 第二版

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解java虚拟机 (二) 第二版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何閱讀本書

本書-共分為五個部分:走近Java、自動內存管理機制、虛擬機執行子系統、程序編譯與代碼優化、高效并發。各部分基本上是互相獨立的,沒有必然的前后依賴關系,讀者可以從任何- -個感興趣的專題開始閱讀,但是每個部分中的各個章節間有先后順序。本書并沒有假設讀者在Java領域具備很專業的技術水平,因此在保證邏輯準確的前提下,盡量用通俗的語言和案例講述虛擬機中與開發的關系最為密切的內容。當然,學習虛擬機技術本身就需要讀者有一定的基礎,且本書的讀者定位是中、高級程序員,因此本書假設讀者自己了解- -些常用的開發框架、Java API和Java語法等基礎知識。筆者希望讀者在閱讀本書的同時,把本書中的實踐內容親自驗證一遍, 其中用到的代碼清單可以從華章網站(ttp://www.hzbook.com) 下載。

語言約定

本書在語言和技術上有如下約定:?
#? 本書中提到HotSpot、JRockit虛擬機、WebLogic服務器等產品的所有者時,仍然使用Sun和BEA公司的名稱,實際上,BEA和Sun分別于2008年和2009年被Oracle公司收購,現在已經不存在這兩個商標了,但毫無疑問的是,它們都是在Java領域中做出過卓越貢獻的、值得程序員紀念的公司。
#? JDK從1.5版本開始,在官方的正式文檔與宣傳資料中已經不再使用類似“JDK 1.5”的名稱,只有程序員內部使用的開發版本號(Developer Version,例如java-version 的輸出)才繼續沿用1.5、1.6 和1.7的版本號,而公開版本號(Product Version)則改為JDK5、JDK6和JDK7的命名方式,為行文-致,本書所有場合統-采用開發版本號的命名方式。0由于版面關系,本書中的許多示例代碼都沒有遵循最優的代碼編寫風格,如使用的流沒有關閉流等,請讀者在閱讀時注意這一一點。如果沒有特殊說明,本書中所有討論都是以Sun JDK 1.7 為技術平臺的。不過如果有某個特性在各個版本間的變化較大,- -般都會說明它在各個版本間的差異。

內容特色.

第一部分走近Java

本書的第一部分為后文的講解建立了良好的基礎。盡管工解Java技術的來龍去脈,以及編譯自己的OpenJDK難于讀者理解Java虛擬機并不是必需的,但是這些準備過程可以為走近Java技術和Java虛擬機提供很好的引導。第一部分只有第1章:
第1章? ? ? 介紹了Java技術體系的過去、現在和未來的一- 些發展趨勢,并介紹了如何獨立
地編譯一個OpenJDK 7。

第二部分自 動內存管理機制

因為程序員把內存控制的權力交給了Java 虛擬機,所以可以在編碼的時候享受自動內存管理的諸多優勢,不過也正是這個原因,- -且出現內存泄漏和溢出方面的問題,如果不了解虛擬機是怎樣使用內存的,那么排查錯誤將會成為一-項異常艱難的工作。

第二部分包括第2~ 5章:?

第2章? ?講解 了虛擬機中內存是如何劃分的,以及哪部分區域、什么樣的代碼和操作可能導致內存溢出異常,并講解了各個區域出現內存溢出異常的常見原因。

第3章分析了垃圾收集的算法和JDK1.7中提供的幾款垃圾收集器的特點及運作原理。通過代碼實例驗證了Java虛擬機中自動內存分配及回收的主要規則。

第4章介紹了隨JDK發布的6個命令行工具與兩個可視化的故障處理工具的使用方法。
第5章與讀 者分享了幾個比較有代表性的實際案例,還準備了一-個所有開發人員都能“親身實戰”的練習,讀者可通過實踐來獲得故障處理和調優的經驗。

第三部分 虛擬機執行子系統

執行子系統是脆擬機中必不可少的組成部分,了解了虛擬機如何執行程序,才能寫出更優秀的代碼。

第三部分包括第6~ 9章:

第6章講解了 Class 文件結構中的各個組成部分,以及每個部分的定義、數據結構和使用方法,以實戰的方式演示了Class 文件的數據是如何存儲和訪問的。
第7章介紹了類加載過程的“加載”、“驗證”、 “準備”、“解析”和“初始化”s個階段中虛擬機分別執行了哪些動作,還介紹了類加載器的工作原理及其對虛擬機的意義。
第8章分析了虛擬機在執行代碼時如何找到正確的方法,如何執行方法內的字節碼,以及執行代碼時涉及的內存結構。
第9章通過4 個類加載及執行子系統的案例,分享了使用類加載器和處理字節碼的一些值得欣賞和借鑒的思路,并通過一個實戰練習來加深對前面理論知識的理解。

第四部分? 程序編譯與代碼優化

Java程序從源碼編譯成字節碼和從字節碼編譯成本地機器碼的這兩個過程,合并起來其實就等同于-個傳統編譯器所執行的編譯過程。

第四部分包括第10~ 11章:

第10章分析了 Java語言中泛型、主動裝箱和拆箱、條件編譯等多種語法糖的前因后果,并通過實戰演示了如何使用插人式注解處理器來實現- -個檢 查程序命名規范的編譯器插件。
第11章講解了虛擬機的熱點探測方法、HotSpot的即時編譯器、編譯觸發條件,以及如何從虛擬機外部觀察和分析JIT編譯的數據和結果,此外,還講解了幾種常見的編譯優化技術。
第五部分高效并發
Java語言和虛擬機提供了原生的、完善的多線程支持,這使得它天生就適合開發多線程并發的應用程序。不過我們不能期望系統來完成所有并發相關的處理,了 解并發的內幕也是成為-一個高級程序員不可缺少的課程。第五部分包括第12~ 13章:
第12章講解了 虛擬機Java內存模型的結構及操作,以及原子性、可見性和有序性在Java內存模型中的體現,介紹了先行發生原則的規則及使用,還了解了線程在Java語言中是如何實現的。
第13章介紹了 線程安全涉及的概念和分類、同步實現的方式及虛擬機的底層運作原理,并且介紹了虛擬機實現高效并發所采取的- - 系列鎖優化措施。

?

總結

以上是生活随笔為你收集整理的深入理解java虚拟机 (二) 第二版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。