一、虛擬機
部分一:
1、說一說GC算法(重點重點)還是那句話:舉一反三,拿起紙筆給面試官講
(1)從JVM內存模型開始說起,在紙上畫出大概的組成部分,然後說出每個組成部分的特點
(2) 開始說說分代GC,這時就把GC算法引入進來,再結合每個區域的特點 把Minor GC 和Full GC 引入進來
(3) 可以跟他說說垃圾回收器,Serial 、 ParNew 、CMS 等等
2、JVM內存模型(重點)
3、新生老年代gc算法的實現;
4、 你知道垃圾回收機制麼?
-
這個我之前可是仔細總結過的,我把垃圾判斷算法、垃圾回收算法、垃圾回收器都仔細的說了一遍。
5、jvm內存劃分,以及垃圾回收(重點)
6、GC算法,除了常見的複製算法,標記整理,標記清除算法,面試官問還知道哪些,
7、爲什麼java要有垃圾回收?
8、內存溢出了怎麼辦
9、 堆內存回收
10、java虛擬機類加載機制
11、(1)Java虛擬機的內存分區(虛擬機棧、方法區,本地方法區,堆等),還要你介紹每個分區的作用
(2)問jvm內存分代機制(會問分爲那幾個代,各個代特點),分代回收的優點(這個問了很多次)
12、minor GC和Full GC的觸發時機
部分二:
1. 內存模型以及分區,需要詳細到每個區放什麼。
2. 堆裏面的分區:Eden,survival from to,老年代,各自的特點。
3. 對象創建方法,對象的內存分配,對象的訪問定位。
4. GC的兩種判定方法:引用計數與引用鏈。
5. GC的三種收集方法:標記清除、標記整理、複製算法的原理與特點,分別用在什麼地方,如果讓你優化收集方法,有什麼思路?
6. GC收集器有哪些?CMS收集器與G1收集器的特點。
7. Minor GC與Full GC分別在什麼時候發生?
8. 幾種常用的內存調試工具:jmap、jstack、jconsole。
9. 類加載的五個過程:加載、驗證、準備、解析、初始化。
10. 雙親委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
11. 分派:靜態分派與動態分派。
JVM過去過來就問了這麼些問題,沒怎麼變,內存模型和GC算法這塊問得比較多,可以在網上多找幾篇博客來看看。