前言:文章中只羅列出知識點問題,並不提供對應的答案,僅僅作爲檢驗自己是否對某個知識點存在空缺或遺忘,答案請自行Google;
2018年3月8日記錄:
一.說一下 Java 的垃圾回收機制?
- a.System.gc()
- b.運行時的內存分佈情況
- c.如何判斷對象已死(兩種算法)
- d.4種引用方式
- e.4種垃圾回收算法
二.Java虛擬機內存模型(區別於 Java內存模型)
- a.結構,包括(執行引擎、本地庫接口、本地方法庫)
- b.詳細說明“運行時數據區域”
三.JVM的4種引用和使用場景
四.引用計數法與可達性分析算法 / 如何判斷對象是不是垃圾
- a.互相引用
- b.哪些可以作爲GC Roots對象
五.堆裏面的分區和各自的特點
六.Minor GC 與 Full GC 分別在什麼時候發生
- a.內存分配規則
七.幾種垃圾回收算法的原理和特點,應用場景
八.GC收集器有哪些?詳細談一下CMS收集器和G1收集器的特點
九.內存泄漏和內存溢出
- a.泄漏的原因
- b.內存泄漏的解決方案
- c.實際開發場景中,如何查找內存泄漏(工具)
- d.內存溢出的幾種情況
- e.導致內存溢出的原因
- f.內存溢出的解決方法
十.如何減少gc出現的次數/Java內存管理
十一.數組多大放在JVM老年代
- a.永久代對象如何GC
- b.如果想不被GC怎麼辦
- c.如何想在GC中生存1次怎麼辦
十二.JVM常用的啓動參數
十三.常用內存調試工具
十四.雙親委派模型
- a.如何自定義類加載器
- b.如何打破雙親委派機制
十五.描述Java類加載器的工作原理及其組織結構
十六.Java編譯過程
十七.字節碼文件的格式
十八.即時編譯器的優化方法
十九.靜態分派與動態分派
- a.這塊可以與Java動態(重載、重寫)的表現形式一起說明
二十.new的對象如何不分配在堆而分配在棧上呢
- a.詳細介紹方法逃逸