日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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

前言:

Java是目前用戶最多、使用范圍最廣的軟件開發(fā)技術(shù)之一。Java 的技術(shù)體系主要由支撐Java程序運行的虛擬機、提供各開發(fā)領(lǐng)域接口支持的Java API、 Java編程語言及許多第三方Java框架(如Spring、Struts 等)構(gòu)成。在國內(nèi),有關(guān)Java API Java語言語法及第三方框”架的技術(shù)資料和書籍非常豐富, 相比之下,有關(guān)Java虛擬機的資料卻顯得異常貧乏。.這種狀況在很大程度上是由Java開發(fā)技術(shù)本身的一-個重要優(yōu)點導(dǎo)致的:在虛擬機層面隱藏了底層技術(shù)的復(fù)雜性以及機器與操作系統(tǒng)的差異性。運行程序的物理機器的情況千差萬別,而Java虛擬機則在差萬別的物理機上建立了統(tǒng)= -的運行平臺,實現(xiàn)了在任意- - 臺虛擬機上編譯的程序都能在任何一臺虛擬機上正常運行。這-極大優(yōu)勢使得Java應(yīng)用的開發(fā)比傳統(tǒng)CLC++應(yīng)用的開發(fā)更高效和快捷,程序員可以把主要精力集中在具體業(yè)務(wù)邏輯上,而不是物理硬件的兼容性上。在一般情況下, 一個程序員只要了解了必要的Java API、Java 語法,以及學(xué)習(xí)適當(dāng)?shù)牡谌介_發(fā)框架,就已經(jīng)基本能滿足日常開發(fā)的需要了,虛擬機會在用戶不知不覺中完成對硬件平臺的兼容及對內(nèi)存等資源的管理工作。因此,了解虛擬機的運作并不是一-般開發(fā)人員必須掌握的知識。然而,凡事都具備兩面性。隨著Java技術(shù)的不斷發(fā)展,它被應(yīng)用于越來越多的領(lǐng)域之中。其中-些領(lǐng)域,如電力、金融、通信等,對程序的性能、穩(wěn)定性和可擴展性方面都有極高的要求。程序很可能在10個人同時使用時完全正常,但是在10 000個人同時使用時就會緩慢、死鎖,甚至崩潰。毫無疑問,要滿足10 000個人同時使用需要更高性能的物理硬件,但是在絕大多數(shù)情況下,提升硬件效能無法等比例地提升程序的運作性能和并發(fā)能力,甚至可能對程運作狀況完全沒有任何改善。這里面有Java虛擬機的原因:為了達到給所有硬件提供-致的虛擬平臺的目的,犧牲了- -些與硬件相關(guān)的性能特性。更重要的是人為原因:如果開發(fā)大員不了解虛擬機- -些技術(shù)特性的運行原理,就無法寫出最適合虛擬機運行和自優(yōu)化的代碼。其實,目前商用的高性能Java虛擬桃都提供了相當(dāng)多的優(yōu)化特性和調(diào)節(jié)手段,用于滿足應(yīng)用程序在實際生產(chǎn)環(huán)境中對性能和穩(wěn)定性的要求。如果只是為了人門學(xué)習(xí),讓程序在自己的機器上正常運行,那么這些特性可以說是可有可無的;如果用于生產(chǎn)開發(fā),尤其是企業(yè)級生產(chǎn)開發(fā),就迫切需要開發(fā)人員中至少有一部分人對虛擬機的特性及調(diào)節(jié)方法具有很清晰的認識,所以在Java開發(fā)體系中,對架構(gòu)師、系統(tǒng)調(diào)優(yōu)師、高級程序員等角色的需求一直都非常大。學(xué)習(xí)虛擬機中各種自動運作特性的原理也成為了Java 程序員成長道路上必然會接觸到的- -課。本書可以使讀者以-一種相對輕松的方式學(xué)習(xí)虛擬機的運作原理,對Java程序員的成長也有較大的幫助。

第2版與第1版的區(qū)別

JDK 1.7在2011 年7月28日正式發(fā)布,相對于2006年發(fā)布的JDK 1.6,新版的JDK有了許多新的特性和改進。本書的第2版也相應(yīng)地進行了修改和升級,把講解的技術(shù)平臺從JDK 1.6提升至JDK 1.7。例如,增加了對JDK 1.7中最新的G1收集器,以及JDK 1.7中JSR-292 knvokeDynamic (對非Java語言的調(diào)用支持)的分析講解等內(nèi)容。在第1版出版后,筆者收到了許多熱心讀者的反饋見,部分讀者提出OpenJDK開源已久,第廠版卻很少有直接分析OpenJDK源碼的內(nèi)容,有點“視寶山而不見”的感覺。因此,在本書第2版中,筆者特別加強了對這部分內(nèi)容的講解,其中在第1章中就介紹了如何分析、調(diào)試OpenJDK源碼等。在本書后續(xù)章節(jié)中,不少關(guān)于功能點的講解都直接使用OpenJDK中的HotSpot源碼或者JIT編譯器生成的本地代碼作為論據(jù)。如何把Java虛擬機原理中許多理論性很強的知識、特性應(yīng)用于實踐開發(fā),是本書貫穿始終的指。由于筆者希望在本書第2版中進一步加強知識的實踐性,因此增加了許多對處理JVM常見問題技能的講解,包括如何分析GC日志、如何分析JIT編譯器代碼優(yōu)化過程和生成代碼等。并且,在第1版的基礎(chǔ)上,第2版中進一步增加了若干處理JVM問題的實踐案例供讀者參考。另外,本書第2版還修正了第1版中多處錯的、有歧義的和不完整的描述。有關(guān)勘誤信息,可以參考第1版的勘誤頁面(tp://icyfenix.iteye.com/blog/1119214)。

本書面向的讀者

(1)使用Java技術(shù)體系的中、高級開發(fā)人員
Java虛擬機作為中、高級開發(fā)人員必須修煉的知識,有著較高的學(xué)習(xí)門檻,本書可作為學(xué)習(xí)虛擬機的優(yōu)秀教材。
(2)系統(tǒng)調(diào)優(yōu)師
系統(tǒng)調(diào)優(yōu)師是近幾年才興起的職業(yè),本書中的大量案例、代碼和調(diào)優(yōu)實戰(zhàn)將會對系統(tǒng)調(diào)優(yōu)師的日常工作有直接的幫助。
(3)系統(tǒng)架構(gòu)師
保障系統(tǒng)的性能、并發(fā)和伸縮等能力是系統(tǒng)架構(gòu)師的主要職責(zé)之-一,而這部分與噓擬機的運作密不可分,本書可以作為他們制定應(yīng)用系統(tǒng)底層框架的參考資料。
?

?

?

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。