JVM與效能優化高階面試32題(收藏版):效能調優+垃圾回收+記憶體區域+雙親委派等

JVM 是小白 Java 程式設計師成長路上的一道坎,學習JVM之前,只需要知道程式碼編譯成 Class,虛擬機器載入 Class 執行就可以了,學習 JVM 之後,可以深入理解程式碼從編譯到載入的過程、記憶體中物件的建立與垃圾回收、日常開發中快速定位效能問題等,當然也是面試不可缺少的加分項,面對阿里等一線大企業的面試中也是必問之一!
JVM記憶體區域常見問題
- Java 記憶體分配?
- Java 堆的結構是什麼樣子的?
- 什麼是堆中的永久代(Perm Gen space)?
- 簡述各個版本記憶體區域的變化?
- 說說各個區域的作用?
- Java 中會存在記憶體洩漏嗎,簡述一下?
JVM的執行子系統常見問題
- Java 類載入過程?
- 描述一下 JVM 載入 Class 檔案的原理機制?
- 什麼是類載入器?
- 類載入器有哪些?
- 什麼是tomcat類載入機制?
- 類載入器雙親委派模型機制?
垃圾回收常見問題
- 什麼是GC? 為什麼要有 GC?
- 簡述一下Java 垃圾回收機制?
- 如何判斷一個物件是否存活?
- 垃圾回收的優點和原理,並考慮 2 種回收機制?
- 垃圾回收器的基本原理是什麼?
- 垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器進行垃圾回收?
- 深拷貝和淺拷貝?
- System.gc() 和 Runtime.gc() 會做些什麼?
- 如果物件的引用被置為 null,垃圾收集器是否會立即釋放物件佔用的記憶體?
- 什麼是分散式垃圾回收(DGC)?它是如何工作的?
- 序列(serial)收集器和吞吐量(throughput)收集器的區別是什麼?
- 在 Java 中,物件什麼時候可以被垃圾回收?
- 簡述Minor GC 和 Major GC?
- JVM 的永久代中會發生垃圾回收麼?
- Java 中垃圾收集的方法有哪些?
效能優化常見問題
- 講講你理解的效能評價及測試指標?
- 常用的效能優化方式有哪些?
- 說說分散式快取和一致性雜湊?
- 同步與非同步?阻塞與非阻塞?
- 什麼是GC調優?
- 常見非同步的手段有哪些?
如何正確系統的學習JVM和效能調優?
所謂系統學習法,是指把所學內容當成是一個系統看待,力求從大方向出發指導學習,這樣,在學習和複習的時候不是按部就班按章節行進,而是先模糊概括,再逐漸在大框架下逐步明晰細節、完善結構、針對缺陷和不足專攻的學習方法。區分一個程式猿技術水平和視野的一個重要指標是效能優化,所以面試時,面試官總會問你一個問題,如何進行效能優化呢?

知識筆記導圖
Java記憶體區域
- 執行時資料區域(程式計數器、堆、棧等)
- 站線上程角度來看堆和棧
- 深入辨析堆和棧
- 方法的出入棧
- 虛擬機器中的物件
- 堆引數設定和記憶體溢位實戰
垃圾回收器和記憶體分配策略
- 判斷物件的存活
- 辨析強、弱等各種引用
- GC演算法
- 分代收集
- Stop The World現象
- GC日誌解讀
- 記憶體分配與回收策略,記憶體洩漏和記憶體溢位辨析
- JDK為我們提供的工具
- 瞭解MAT
- 垃圾回收器
深入瞭解效能優化
- 常用的效能評價/測試指標
- 常用的效能優化手段
- 詳細瞭解應用服務效能優化
編寫高效優雅Java程式
JVM的執行子系統
- Class類檔案本質,Class檔案格式
- 位元組碼指令
- 類載入機制
- 棧楨詳解
- 方法呼叫詳解
- 基於棧的位元組碼解釋執行引擎
如果看到這時你的頭腦還是一片空白,或是靠死記硬背還是靠著之前的經歷,答一下壓縮程式碼,打包程式碼,事件代理,這說明你對效能優化還是缺乏一個整體,系統的掌握,對效能優化還只是處於聽說過一個方法就加上去的階段。這樣也就無從去更好的優化效能。 在這分享一個系統學習JVM及效能調優的學習導圖並且在文末附Xmind檔案筆記免費分享!(建議收藏)
讀者福利(學習資料分享)
而針對以上面試技術點,我在這裡也做一些技術知識面試專題資料免費分享,希望能更好的幫助到大家。
領取方式:
點點喜歡,加入合作Java架構交流Qqun:935692859,管理員處免費領取資料。

面試答案截圖

BAT大廠面試題

更多面試專題
對於很多初級Java工程師而言,想要提升技能,往往是自己摸索成長,不成體系的學習效果低效漫長且無助。
整理的這些架構技術希望對Java開發的朋友們有所參考以及少走彎路,本文的重點是你有沒有收穫與成長,其餘的都不重要,希望讀者們能謹記這一點。同時我經過多年的收藏目前也算收集到了一套完整的學習資料,希望對想成為架構師的朋友有一定的參考和幫助。
下面是部分資料截圖,誠意滿滿:特別適合有2-5年開發經驗的Java程式設計師們學習。
領取方式:
點點喜歡,加入合作Java架構交流Qqun:935692859,管理員處免費領取資料。
(部分資料如下)

部分視訊資料