JVM学习01总体概述
生活随笔
收集整理的這篇文章主要介紹了
JVM学习01总体概述
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
JVM的整體結(jié)構(gòu)
HotSpot VM是目前市面上高性能虛擬機(jī)的代表作之一,它采用解釋器與即時(shí)編譯器并存的架構(gòu)
Java編譯器輸入的指令流基本上是一種基于棧的指令架構(gòu),另外一種指令集架構(gòu)則是基于寄存器的指令集架構(gòu)。
一、指令集構(gòu)建
同樣執(zhí)行2+3這樣的邏輯操作,其2指令分別如下:
1.基于棧的計(jì)算流程
然后進(jìn)行反編譯
這里有個改正,我們進(jìn)行反編譯的語句應(yīng)該為:javap -v 要反編譯的文件(在上面對應(yīng)的是StackStruTest.class)
和dos命令窗下一樣,先找到代碼路徑,然后
2.基于寄存器的計(jì)算流程
棧:
跨平臺性、指令集小、指令多;執(zhí)行性能比寄存器差
二、JVM的生命周期
- 虛擬機(jī)的啟動
通過引導(dǎo)類加載器(bootstrap class loader)創(chuàng)建一個初始類(initial class)來完成的,這個類就是由虛擬機(jī)的具體實(shí)現(xiàn)指定的 - 虛擬機(jī)的執(zhí)行
執(zhí)行一個所謂的Java程序的時(shí)候,真真正正在執(zhí)行的是一個叫做Java虛擬機(jī)的進(jìn)程 - 虛擬機(jī)的退出
有如下幾種情況:
程序正常執(zhí)行結(jié)束
程序在執(zhí)行過程中遇到了異?;蛘咤e誤而異常中止
由于操作系統(tǒng)出現(xiàn)錯誤而導(dǎo)致Java虛擬機(jī)進(jìn)程中止
由于線程調(diào)用Runtime類或System類的exit方法,或Runtime類的halt方法,并且Java安全管理器也允許這次exit或halt操作
除此之外,JNI(Java native interface)規(guī)范描述了用JNI Invocation API來加載或卸載Java虛擬機(jī)時(shí),Java虛擬機(jī)的退出情況
總結(jié)
以上是生活随笔為你收集整理的JVM学习01总体概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据算法岗位面试题
- 下一篇: python会计实证研究_描述性统计分析