首先,對(duì)以上的四部分進(jìn)行解釋。
(1)自動(dòng)內(nèi)存管理講的是java運(yùn)行時(shí)數(shù)據(jù)區(qū)里的部分,分為內(nèi)存劃分和垃圾收集器。
(2)執(zhí)行子系統(tǒng)講的是畫紅圈的三部分:類文件結(jié)構(gòu)、類加載機(jī)制、字節(jié)碼執(zhí)行引擎。
(3)優(yōu)化分別為編譯期優(yōu)化和運(yùn)行期優(yōu)化。
(4)并發(fā)講的是虛擬機(jī)是如何實(shí)現(xiàn)多線程的。
具體可結(jié)合下面的JVM結(jié)構(gòu)圖來看。這張圖是基于JDK7的。JDK7以前,常量池是存放在方法區(qū)的。從JDK7以后,常量池放到了堆中。
本系列文章:
JVM(1)—綜述
JVM(2)—內(nèi)存的劃分
JVM(3)—垃圾收集機(jī)制
JVM(4)—類文件結(jié)構(gòu)
JVM(5)—類加載機(jī)制
JVM(6)—執(zhí)行引擎
JVM(7)—JVM優(yōu)化
JVM(8)—高效并發(fā)
JVM概念:
我們來看看JVM是什么,為什么有JVM。
JVM是java虛擬機(jī)(Java Virtual Machine),其實(shí)現(xiàn)了“一次編譯,處處運(yùn)行”的功能。如果沒有JVM,我們編寫java代碼時(shí),如果想在Windows平臺(tái)上運(yùn)行,那就需要編寫一套適用于Windows平臺(tái)的。如果想在linux平臺(tái)上運(yùn)行,則編寫一套linux的。
如果類比到現(xiàn)實(shí),.java就是面粉,.class就是和好的面團(tuán),jvm就是一個(gè)個(gè)的模子,把同樣的面團(tuán)刻畫出不同樣子的小饅頭。
更過相關(guān)問題請(qǐng)?jiān)L問PHP中文網(wǎng):JAVA實(shí)戰(zhàn)教學(xué)視頻