關於JVM所應該掌握的知識點

  1.     JVM內存模型?算法

  2.     寫一段代碼實現堆溢出?棧溢出?常量池溢出?方法區溢出?代理

  3.     類的生命週期?對象

  4.     哪四種狀況會觸發類的初始化(也就是主動引用)?生命週期

  5.     被動引用會觸發初始化嗎?請舉例
        Class對象在堆中的做用?內存

  6.     類加載器(ClassLoader)的類加載模式?爲何要選擇這種模式?雙親委託加載模式的代碼實現?虛擬機

  7.     如何實現自定義的ClassLoader?原理

  8.     JDK動態代理的原理?引用

  9.     虛擬機棧棧幀包含哪些部分以及各部分功能?方法

  10.     字節碼執行引擎方法調用中靜態分派和動態分派區別?重寫與重載?內存分配

  11.     JVM爲何選用基於棧的指令集而不是基於二地址指令集?(可移植性)

  12.     動態代理的原理?好處?JDK動態代理與Cglib動態代理的區別?

  13.     垃圾收集算法?標記-清除算法缺點?複製算法缺點?標記-整理算法適用區域?解釋一下分代收集算法?

  14.     內存分配與回收策略?

  15.     有哪些垃圾收集器以及各自區別?Serial與ParNew異同點? ParNew與Paralell Scanvenge區別?

        CMS最大特色及顯著缺點?

  16.     哪些對象可歸爲GC Roots?

  17.     MinorGC與FullGC?

相關文章
相關標籤/搜索