課程介紹:
作為開發工程師,你也許會在日常編程中被 Java 的啟動性能和內存耗費所震驚,繼而對 Java 語言產生懷疑;或許在使用虛擬機遇見內存溢出等一系列異常時頭疼萬分,困擾于為什么會出現各種問題。
和語言朝夕相處的開發者們,提及代碼的詳細運行過程也難免會一時語塞。這都是由于 Java 虛擬機封裝得太好,讓使用者幾乎感覺不到它的存在。雖然這種“一次編寫,到處運行”優勢頗多,但是卻也讓我們忽略了學習 Java 虛擬機的必要。
熟知 Java 虛擬機的工作原理可以大幅提升日常編程的效率,對尋常 Bug 的修復更是輕而易舉。同時,這也是 Java 技術的重要組成成分之一,是實現技術進階必不可缺的知識。
本專欄通過揭秘 Java 虛擬機的工作原理,詳細闡述 Java 程序是如何被執行并且被優化的。介紹的內容并不限于某一個版本,從 8 到 11 都會涉及。通過學習此專欄,你將了解如何編寫高效的代碼,如何對 Bug 達到最優處理,以及如何針對自己的應用調整虛擬機的運行參數。
本專欄共 36 期,分為四大模塊。
模塊一 Java 虛擬機基本原理
剖析 Java 虛擬機的運行機制,逐次介紹 Java 虛擬機的設計決策以及工程實現。
模塊二 高效編譯
在本模塊中,作者將帶你探索 Java 編譯器,以及內嵌于 Java 虛擬機中的即時編譯器,幫助你更好地理解 Java 語言特性,繼而寫出簡潔高效的代碼。
模塊三 代碼優化
在實踐過程中我們經常會遇到形形色色的性能問題,解決方法不外乎加機器加內存。本模塊將介紹上述方法失效后的 Plan B,即如何利用工具定位并解決代碼中的潛在問題,以及在已有工具不適用的情況下,如何打造專屬輪子。此外,本模塊還將介紹對 JVM 內存管理失去信心的開發者所選取的解決方案,以備不時之需。
模塊四 虛擬機黑科技
當一門程序語言成熟穩定后,技術大神們便熱衷于用這種語言開發實現編譯器或虛擬機。在 Java 10 中,Graal 已作為試驗性即時編譯器一同發布。本模塊將詳細科普 GraalVM 的各個組成部分,其中包括編譯器 Graal,語言實現框架 Truffle,以及支持 Ahead-of-Time(AOT)編譯的 SubstrateVM。