JVM雜記
java之父:高斯林
官方文檔:
https://docs.oracle.com/javase/specs/index.html
官方在線PDF:https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf--->深入理解java虛擬機(jī)
javaSE8:https://docs.oracle.com/javase/8/docs/
硬件,軟件,指令:
高級(jí)語(yǔ)言-匯編語(yǔ)言-機(jī)器指令-CPU
java程序-字節(jié)碼文件-JVM(win版,Linux版,Mac版)-操作系統(tǒng)-硬件
虛擬機(jī)是虛擬機(jī)規(guī)范的一個(gè)實(shí)現(xiàn),Oracle主推HotSpot
JVM的位置:

一些關(guān)鍵事件:
2000年,HotSpot虛擬機(jī)正式發(fā)布,成為java默認(rèn)的虛擬機(jī)
2004年JDK1.5發(fā)布,改名為javaSE5.0
2006年,java開(kāi)源了OpenJDK,HotSpot也成為其默認(rèn)虛擬機(jī)
2010年,Oracle收購(gòu)了Sun
2017年,JDK9發(fā)布,G1垃圾回收器設(shè)置為默認(rèn)GC,替代CMS
2018年,ZGC發(fā)布
OpenJDK是開(kāi)源的,OracleJDK是商用的,前者的功能反而比后者大
JVM的生命周期:
啟動(dòng):通過(guò)引導(dǎo)類(lèi)加載器BootStrap class loader創(chuàng)建一個(gè)初始類(lèi)來(lái)完成(如包含main方法的類(lèi))
執(zhí)行:執(zhí)行一個(gè)java程序,會(huì)產(chǎn)生一個(gè)jvm進(jìn)程
退出:程序正常執(zhí)行結(jié)束,或程序因異常或錯(cuò)誤而終止,或某個(gè)線程調(diào)用了System.exit()方法,RunTime.exit()方法
HotSpot VM:
1、熱點(diǎn)代碼探測(cè)技術(shù)
2、通過(guò)編譯器和解釋器協(xié)同工作,在最優(yōu)化的程序響應(yīng)時(shí)間與最佳的執(zhí)行性能中取得平衡
JRockit VM:
不包含解釋器實(shí)現(xiàn)
IBM的J9 VM

浙公網(wǎng)安備 33010602011771號(hào)