java之父:高斯林 官方文檔: https://docs.oracle.com/javase/specs/index.html 官方線上PDF:https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf >深入理解java虛擬機 javaSE8: ...
java之父:高斯林
官方文檔:
https://docs.oracle.com/javase/specs/index.html
官方線上PDF:https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf--->深入理解java虛擬機
javaSE8:https://docs.oracle.com/javase/8/docs/
硬體,軟體,指令:
高級語言-彙編語言-機器指令-CPU
java程式-位元組碼文件-JVM(win版,Linux版,Mac版)-操作系統-硬體
虛擬機是虛擬機規範的一個實現,Oracle主推HotSpot
JVM的位置:
一些關鍵事件:
2000年,HotSpot虛擬機正式發佈,成為java預設的虛擬機
2004年JDK1.5發佈,改名為javaSE5.0
2006年,java開源了OpenJDK,HotSpot也成為其預設虛擬機
2010年,Oracle收購了Sun
2017年,JDK9發佈,G1垃圾回收器設置為預設GC,替代CMS
2018年,ZGC發佈
OpenJDK是開源的,OracleJDK是商用的,前者的功能反而比後者大
JVM的生命周期:
啟動:通過引導類載入器BootStrap class loader創建一個初始類來完成(如包含main方法的類)
執行:執行一個java程式,會產生一個jvm進程
退出:程式正常執行結束,或程式因異常或錯誤而終止,或某個線程調用了System.exit()方法,RunTime.exit()方法
HotSpot VM:
1、熱點代碼探測技術
2、通過編譯器和解釋器協同工作,在最優化的程式響應時間與最佳的執行性能中取得平衡
JRockit VM:
不包含解釋器實現
IBM的J9 VM