JVM虛擬機的執(zhí)行流程解析
1. 虛擬機的啟動
Java虛擬機的啟動是通過引導類加載器創(chuàng)建一個初始類來完成的,這個類是由虛擬機的具體實現(xiàn)指定的。
2.虛擬機的執(zhí)行
1.一個運行中的Java虛擬機有著一個清晰的任務:執(zhí)行Java程序。
2.程序開始執(zhí)行時他才運行,程序結(jié)束時他就停止
3.執(zhí)行一個所謂的Java程序的時候,真真正正在執(zhí)行的是一個叫做Java虛擬機的進程
2.1如何查看虛擬機的執(zhí)行
第一步運行這個線程
public class StackStruTest {
public static void main(String[] args) {
int i =2;
int j = 3;
int k = i + j ;
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("\"hello\" = " + "hello");
}
}第二步:

Terminal選項欄中輸入: jps 可以查看當前正在運行的線程
3.虛擬機的退出
虛擬機的推出有以下的幾種情況:
1.程序正常執(zhí)行結(jié)束
2.程序在執(zhí)行過程中遇到了異?;蝈e誤而異常終止
3.由于操作系統(tǒng)出現(xiàn)錯誤而導致Java虛擬機進程終止
4.某線程調(diào)用Runtime類或者System類的exit方法,或Runtime類的halt方法,并且Java安全管理器也允許這次exit或halt操作
除此之外,JNI規(guī)范描述了JNI來加載或者卸載Java虛擬機時,Java虛擬機的推出情況。
源碼解析:
第一步: 先進入System中找到exit方法,進入Runtime.getRuntime().exit(status)中的exit方法
注意:即我們可以在system中把Runtime進程給關(guān)閉掉

第二步: 此事已經(jīng)進入Runtime類中,我們再次進入shutdown類中的exti方法 注意的是Runtime這個類涉及到虛擬機的運行時

第三步: 此時已近進入Shutdown類中

到此這篇關(guān)于JVM虛擬機的執(zhí)行流程解析的文章就介紹到這了,更多相關(guān)JVM執(zhí)行流程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中的 FilterInputStream簡介_動力節(jié)點Java學院整理
FilterInputStream 的作用是用來“封裝其它的輸入流,并為它們提供額外的功能”。接下來通過本文給大家分享Java中的 FilterInputStream簡介,感興趣的朋友一起學習吧2017-05-05
使用Mybatis-Plus實現(xiàn)對象屬性自動填充功能
這篇文章主要介紹了如何使用Mybatis-Plus實現(xiàn)對象屬性自動填充功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,感興趣的朋友們下面隨著小編來一起來學習吧2024-01-01
解決java文件流處理異常 mark/reset not supported問題
這篇文章主要介紹了解決java文件流處理異常 mark/reset not supported問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
SpringBoot3.x嵌入MongoDB進行測試的步驟詳解
本文介紹了在?Spring?Boot?應用中使用Flapdoodle?Embed?Mongo進行?MongoDB?測試的方法,包括Embed?Mongo?的概念,添加依賴、配置、運行測試的步驟,還列舉了其優(yōu)勢如快速啟動關(guān)閉、環(huán)境一致、無需外部依賴等,以及注意事項和結(jié)論,需要的朋友可以參考下2024-12-12
聊聊maven的pom.xml中的exclusions標簽的作用
這篇文章主要介紹了maven的pom.xml中的exclusions標簽的作用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12

