Java是目前應用為廣泛的軟件開發平臺之一。隨著Java及Java社區的不斷壯大,Java早已不再是一門簡單的計算機語言了,它更是一個平臺、一種文化、一個社區。
作為一個平臺,JVM虛擬機起著舉足輕重的作用。除了Java語言,任何一種能夠被編譯成字節碼的計算機語言都屬於Java這個平臺。Groovy、Scala和JRuby等都是Java平臺的一部分,它們依賴於JVM虛擬機,同時,Java平臺也因為它們而變得更加豐富多彩。
作為一種文化,Java幾乎成為“開源”的代名詞。在Java平臺上,有大量的開源軟件和框架,如Tomcat、Struts、Hibernate和Spring等。就連JDK和JVM自身也有不少的開源實現版本,如OpenJDK和Harmony。可以說,“共享”的精神在Java世界裡體現得淋漓盡致。
作為一個社區,Java擁有無數的開發人員、數不清的論壇和資料。從桌面應用軟件和嵌入式開發,到企業級應用、後臺服務器和中間件,都可以看到Java的身影。其應用形式之復雜、參與人數之龐大也令人咂舌。可以說,Java社區已經成為一個良好而龐大的生態繫統。
《Java程序性能優化實戰》特色
《Java程序性能優化實戰》的主要特色有:
專注於Java應用程序的優化方法、技巧和思想,並深度剖析JDK部分的實現。
具有較強的層次性和連貫性,深入剖析軟件設計層面、代碼層面和JVM虛擬機層面的優化方法。
理論結合實踐,使用豐富的示例幫助讀者理解理論知識。
《Java程序性能優化實戰》內容
《Java程序性能優化實戰》主要介紹Java應用程序的優化方法和技巧,共分為6章。
第1章介紹性能的基本概念、兩個重要理論(木桶原理和Amdahl定律),以及繫統調優的一般步驟與注意事項。
第2章從設計層面介紹與性能相關的設計模式、組件及有助於改善性能的軟件設計思想。
第3章從代碼層面介紹如何編寫高性能的Java代碼,涉及的主要內容有字符串的優化處理、文件I/O的優化、核心數據結構的使用、Java的引用類型及一些常用的慣例。
第4章介紹並行程序開發的相關知識,以及如何通過多線程提高繫統性能,涉及的主要內容有並發設計模式、多任務執行框架、並發數據結構的使用、並發控制方法、“鎖”的優化、無鎖的並行計算及協程。
第5章立足於JVM虛擬機層面,介紹如何通過設置合理的JVM參數提升Java程序的性能。
第6章主要介紹獲取和監控程序或繫統性能指標的各種工具,以及Java應用程序相關的故障排查工具。
讀者對像
想要通讀本書並取得良好的學習效果,讀者需要具備Java的基礎知識。本書不是一本幫助Java初學者入門的書籍,而是一本介紹如何編寫高質量Java程序的書籍,主要適合以下讀者閱讀:
擁有一定開發經驗的Java開發人員;
Java軟件設計師和架構師;
繫統調優人員;
有一定Java語言基礎而想進一步提高開發水平的程序員。
《Java程序性能優化實戰》約定
《Java程序性能優化實戰》在講解的過程中有如下約定:
書中所述的JDK 1.5、JDK 1.6、JDK 1.7和JDK 1.8,分別等同於JDK 5、JDK 6、JDK 7和JDK 8。
如無特殊說明,JVM虛擬機均指Hot Spot虛擬機。
如無特殊說明,《Java程序性能優化實戰》中的程序和示例均可在JDK 1.6、JDK 1.7和JDK 1.8環境中運行。
配書資源獲取方式
《Java程序性能優化實戰》涉及的所有源代碼需要讀者自行下載。請在華章公司的網站(www.hzbook.com)上搜索到本書,然後單擊“資料下載”按鈕,即可在本書頁面上找到下載鏈接。
致謝
在《Java程序性能優化實戰》的寫作過程中,我充滿著感激之情。首先感謝我的家人!在本書完稿前,父親病重,但由於我的工作繁忙,未能抽出太多時間照顧他,幸好得到了母親的大力支持和父親的諒解,我纔能夠全身心投入到寫作之中。同時,母親對我的悉心照料也讓我能夠更加專注於寫作。
其次,感謝我的工作單位UT斯達康對我的支持和理解,讓我能安心寫作。另外,還要感謝兩位前輩Rex Zhu和Tao Tao!正是他們在工作中對我的悉心指導,纔能讓我有所進步,而這一切,正是寫作本書的基礎。
後,再次感謝我的母親,祝她身體健康!
售後支持
Java程序性能優化涉及的知識較為龐雜,而且Java技術也在不斷地迭代和發展,加之筆者水平和成書時間所限,書中可能存在一些疏漏和不當之處,敬請各位讀者指正。閱讀本書時若有疑問,請發電子郵件到hzbook2017@163.com。
……