JVM包括類加載子系統(tǒng)、堆、方法區(qū)、棧、本地方法棧、程序計數(shù)器、直接內存、垃圾回收器、執(zhí)行引擎。
1. 類加載子系統(tǒng):類加載子系統(tǒng)負責加載class信息,加載的類信息存放于方法區(qū)中。
2. 直接內存 直接內存是在Java堆外的、直接向系統(tǒng)申請的內存空間。訪問直接內存的速度會由于Java堆。出于性能的考慮,讀寫頻繁的場合可能會考慮使用直接內存。
3. 垃圾回收器:垃圾回收器可以對堆、方法區(qū)、直接內存進行回收。
4. 執(zhí)行引擎:執(zhí)行引擎負責執(zhí)行虛擬機的字節(jié)碼,虛擬機會使用即時編譯技術將方法編譯成機器碼后再執(zhí)行。