03.04 JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

Part1 JVM梳理知識點

Java 虛擬機,是一個可以執行 Java 字節碼的虛擬機進程。Java 源文件被編譯成能被 Java 虛擬機執行的字節碼文件( .class )。

跨平臺的是 Java 程序(包括字節碼文件),,而不是 JVM。JVM 是用 C/C++ 開發的,是編譯後的機器碼,不能跨平臺,不同平臺下需要安裝不同版本的 JVM 。

JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

JVM 組成部分

JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

  • 類加載器,在 JVM 啟動時或者類運行時將需要的 class 加載到 JVM 中。
  • 內存區,將內存劃分成若干個區以模擬實際機器上的存儲、記錄和調度功能模塊,如實際機器上的各種功能的寄存器或者 PC 指針的記錄器等。
  • 執行引擎,執行引擎的任務是負責執行 class 文件中包含的字節碼指令,相當於實際機器上的 CPU 。
  • 本地方法調用,調用 C 或 C++ 實現的本地方法的代碼返回結果。

好吧,下面來看看JVM的知識點梳理!

注意注意:無論是下面分享的JVM知識點梳理,還是學習路線,學習筆記,或者真題解析,都可以免費分享出來跟大家一起學習,私信我 “JVM” 即可免費下載領取!

1、類加載器

  • 加載
  • 驗證
  • 準備
  • 解析
  • 初始化
JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

2、對象的創建過程

  • 檢查類是否被加載
  • 為對象分配內存
  • 為分配的內存空間初始化零值
  • 為對象進行其他設置
  • 執行 init 方法
JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

3、對象的內存佈局

  • 對象頭(markword)
  • 實例數據(Instance Data)
  • 對其填充(Padding)
  • 預估對象大小
JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

4、對象訪問

  • 句柄訪問
  • 直接指針

5、JVM 內存區域

  • 虛擬機棧
  • 本地方法棧
  • 程序計數器
  • 本地內存
JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?


6、對象存活判斷

  • 引用計數
  • 可達性分析
  • finalize
  • 對象引用類型

7、垃圾回收算法

  • 標記-清除
  • 標記-整理
  • 複製算法
  • 分代算法
JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

8、安全點

  • 安全點
  • 安全區域

9、JVM 垃圾回收器

  • Serial (新生代)
  • ParNew(新生代)
  • Parallel Scavenge(新生代)
  • Serial Old(老年代)
  • Parallel Old(老年代)
  • CMS(Concurrent Mark Sweep)(老年代)
  • G1
  • ZGC
JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

Part2 JVM學習路線(xmind)

JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

Part3 我的JVM學習筆記

給大家介紹一本學習書籍《Java虛擬機:JVM高級特性與最佳實踐》454頁的PDF,分為5個部分:走近java、啟動內存管理機制、虛擬機執行子系統、程序編譯與代碼優化、高效併發。

JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

說到這個筆記,前些日子我自己還整理了一份JVM的筆記,也拿出來分享一下吧。這份JVM筆記我主要是分成了十個模塊:(1)JVM 內存結構、(2)HotSpot 虛擬機對象探秘、(3)垃圾收集策略與算法、(4)HotSpot 垃圾收集器、(5)內存分配與回收策略、(6)JVM 性能調優、(7)類文件結構、(8)類加載的時機、(9)類加載的過程、(10)類加載器

JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

Part4 JVM真題解析

下面這些是我總結的一些面試常問的題目並附帶解析:

  • 內存模型以及分區,需要詳細到每個區放什麼?
  • 堆裡面的分區:Eden,survival (from+ to),老年代,各自的特點?
  • 對象創建方法,對象的內存分配,對象的訪問定位?
  • GC 的兩種判定方法?
  • SafePoint 是什麼?
  • GC 收集器有哪些?CMS 收集器與 G1 收集器的特點?
  • Minor GC 與 Full GC 分別在什麼時候發生?
  • 幾種常用的內存調試工具:jmap、jstack、jconsole、jhat?
  • 類加載的幾個過程?
  • JVM 內存分哪幾個區,每個區的作用是什麼?
  • 如和判斷一個對象是否存活?(或者 GC 對象的判定方法)?
  • 簡述 java 垃圾回收機制?
  • java 中垃圾收集的方法有哪些?
  • java 內存模型?
  • java 類加載過程?
  • 簡述 java 類加載機制?
  • 類加載器雙親委派模型機制?
  • 什麼是類加載器,類加載器有哪些?
  • 簡述 java 內存分配與回收策率以及 Minor GC 和 Major GC?
  • ... ...

詳細解析如下,篇幅原因就不一一給出答案了,不過以上說的這些都有整理成文檔,需要的話可以私信我 “JVM” 免費分享給你~

JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,夠不夠?

Part5 最後吧啦幾句

面試問到JVM恐怕早已是家常便飯了吧,也許你正在準備著和麵試官過招,那麼正好,我這份JVM面試速補:知識點梳理+學習路線+學習筆記+真題解析,全部分享給你夠不夠呢?夠不夠你輕鬆手撕面試官?

好吧,好像廢話有點多,點到為止吧,有需要即可免費分享下載學習

只需注意一下免費獲取方式:轉發 + 私信 “JVM” 即可免費分享下載!!!


分享到:


相關文章: