JVM內存模型?算法
寫一段代碼實現堆溢出?棧溢出?常量池溢出?方法區溢出?代理
類的生命週期?對象
哪四種狀況會觸發類的初始化(也就是主動引用)?生命週期
被動引用會觸發初始化嗎?請舉例
Class對象在堆中的做用?內存
類加載器(ClassLoader)的類加載模式?爲何要選擇這種模式?雙親委託加載模式的代碼實現?虛擬機
如何實現自定義的ClassLoader?原理
JDK動態代理的原理?引用
虛擬機棧棧幀包含哪些部分以及各部分功能?方法
字節碼執行引擎方法調用中靜態分派和動態分派區別?重寫與重載?內存分配
JVM爲何選用基於棧的指令集而不是基於二地址指令集?(可移植性)
動態代理的原理?好處?JDK動態代理與Cglib動態代理的區別?
垃圾收集算法?標記-清除算法缺點?複製算法缺點?標記-整理算法適用區域?解釋一下分代收集算法?
內存分配與回收策略?
有哪些垃圾收集器以及各自區別?Serial與ParNew異同點? ParNew與Paralell Scanvenge區別?
CMS最大特色及顯著缺點?
哪些對象可歸爲GC Roots?
MinorGC與FullGC?