日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java虛擬機JVM類加載機制(從類文件到虛擬機)

瀏覽:231日期:2022-08-11 11:14:48
目錄一、類加載機制簡介二、類加載機制過程 2.1、加載(Load)2.2、連接(Linking)2.3、初始化(Initialize)三、類加載器Classloader 3.1、類加載器簡介3.2、類加載器分類3.3、雙親委派一、類加載機制簡介

什么是類的加載

類的加載指的是將類的.class文件中的二進制數(shù)據(jù)讀入到內(nèi)存中,將其放在運行時數(shù)據(jù)區(qū)的方法區(qū)內(nèi),然后在堆區(qū)創(chuàng)建一個java.lang.Class對象,用來封裝類在方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu)。類的加載的最終產(chǎn)品是位于堆區(qū)中的Class對象,Class對象封裝了類在方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu),并且向Java程序員提供了訪問方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu)的接口。

Java虛擬機JVM類加載機制(從類文件到虛擬機)

類加載機制:所謂的類加載機制就是虛擬機將class文件加載到內(nèi)存,并對數(shù)據(jù)進行驗證,轉(zhuǎn)換解析和初始化,形成虛擬機可以直接使用的java類型(即java.lang.class)

JVM的類加載機制分為五個部分:加載,驗證,準備,解析,初始化,圖示:

Java虛擬機JVM類加載機制(從類文件到虛擬機)

二、類加載機制過程 2.1、加載(Load)

所謂JVM加載過程,是查找和導入class文件,加載過程:

(1)通過類的全限定名獲取這個類的二進制字節(jié)流;

(2)將字節(jié)流所代表的靜態(tài)存儲結(jié)構(gòu)轉(zhuǎn)換為方法區(qū)的運行時數(shù)據(jù)結(jié)構(gòu)

Java虛擬機JVM類加載機制(從類文件到虛擬機)

(3)在JVM堆中生成代表這個類的java.lang.class對象(作為方法區(qū)中這些數(shù)據(jù)的訪問入口)

Java虛擬機JVM類加載機制(從類文件到虛擬機)

2.2、連接(Linking)

2.2.1、驗證(Verify)

JVM驗證(Verify)這個過程是為了保證被加載類的正確性,保證其它后續(xù)步驟的正確正常執(zhí)行,驗證的過程包括:

文件格式驗證 元數(shù)據(jù)驗證 字節(jié)碼驗證 符號引用驗證

2.2.2、準備(Prepare)

準備(Prepare)階段,是為類變量分配內(nèi)存并設置初始化值的。

eg:

public static int v = 9092;

注意:在類加載的準備(Prepare)階段,v變量是賦值為0的而不是9092,這個值是在后續(xù)過程才賦值的

private static int i;public static void main(String[] args) { // 正常打印出0,靜態(tài)變量在類加載的準備階段會賦值0 System.out.println(i);}

public static void main(String[] args) { // 編譯報錯,因為局部變量沒賦值不會自動生成初始化值 int i; System.out.println(i);}

2.2.3、解析(Resolve)

這個階段是將常量池中的符號引用轉(zhuǎn)換為直接引用的過程。所謂符號引用就是class文件中的:

1. CONSTANT_Class_info2. CONSTANT_Field_info3. CONSTANT_Method_info// 等等...

直接引用可以是指向目標的指針,相對偏移量或是一個能間接定位到目標的句柄。

直接引用和字符引用一個最明顯的區(qū)別是,直接引用是目標是已經(jīng)被加載到內(nèi)存的,而字符引用并不一定已經(jīng)加載到內(nèi)存。

2.3、初始化(Initialize)

類加載的初始化階段,是對類的變量和代碼塊執(zhí)行初始化操作,是執(zhí)行類構(gòu)造器的過程,換句話說是對類的靜態(tài)變量,靜態(tài)代碼塊執(zhí)行初始化操作

三、類加載器Classloader 3.1、類加載器簡介

類的加載過程是在JVM之外的,目的是為了讓應用程序決定如何獲取需要的類。

類加載,也即類加載器通過類的全限定名獲取其定義的二進制字節(jié)流,顧名思義,類加載器就是來加載class文件的。

3.2、類加載器分類

類加載器可以分為啟動類加載器,拓展類加載器,應用程序類加載器

Java虛擬機JVM類加載機制(從類文件到虛擬機)

1)、 Bootstrap classload(啟動類加載器):負責加載$JAVA_HOME中jre/lib/rt.jar里所有的class或者--Xbootclasspath系統(tǒng)參數(shù)指定路徑下的jar包。這個實現(xiàn)是由c++實現(xiàn)的 2)、Extension Classload(拓展類加載器):負責加載java平臺中拓展的一些jar,包括$JAVA_HOME中jre/lib/ext/*.jar或者-Djava.ext.dirs指定目錄下的jar包 3)、Application Classload(應用程序類加載器):負責加載classpath中指定的jar或者Djava.class.path指定路徑的類和jar包 4)、custom classload(自定義的類加載器):通過java.lang.ClassLoader的子類實現(xiàn)的類,屬于程序根據(jù)需要自定義拓展的類加載器,如tomcat、jboss都會根據(jù)j2ee規(guī)范自行實現(xiàn)ClassLoader3.3、雙親委派

類的加載原則:按照“雙親委派”的原則加載的,當一個類收到了類加載請求,他首先不會嘗試自己去加載這個類,而是把這個請求委派給父類去完成,每一個層次類加載器都是如此也即class類的加載,按照自頂向下的規(guī)則,由Bootstrap Classload到custom classload,就是由上層的加載類來加載類

目的:不管是哪個加載器加載這個類,最終都是委托給頂層的啟動類加載器進行加載,保證了使用不同的類加載器最終得到的都是同樣一個 Object 對象。

附錄:參數(shù)資料

https://docs.oracle.com/javase/specs/jvms/se8/html/index.html

以上就是Java JVM類加載機制(從類文件到虛擬機)的詳細內(nèi)容,更多關(guān)于JVM類加載機制的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美aa国产视频| 高清在线一区| 亚洲一区二区免费看| 蜜臀av免费一区二区三区| 亚洲综合在线电影| 欧美a在线观看| 久久精品国产在热久久| 精品国产99| 超碰在线99| 91精品一区二区三区综合在线爱 | 免费在线观看一区| 日韩av中文字幕一区二区| 日韩精彩视频在线观看| 日本午夜精品久久久久| 麻豆成人91精品二区三区| 国产一区二区视频在线看| 国产精品久久久久久久免费观看| 欧美特黄一级大片| 日韩高清中文字幕一区二区| 成人欧美一区二区三区的电影| 日精品一区二区三区| 91精品国产自产在线丝袜啪| 精品入口麻豆88视频| av资源亚洲| 亚洲免费一区二区| 日本不卡视频在线观看| 日日摸夜夜添夜夜添国产精品| 播放一区二区| 不卡一区2区| 亚洲精品在线国产| 国产高清亚洲| 91精品综合| 亚洲精选av| 欧美日韩午夜| 日韩欧美精品| 黑丝一区二区三区| 91精品国产一区二区在线观看| 性色av一区二区怡红| 伊人精品久久| 精品一区二区三区中文字幕在线| 日韩av网站在线观看| 国产精品任我爽爆在线播放| 久久久久久久久成人| 久久免费国产| 91精品国产自产精品男人的天堂| 亚洲综合五月| 国产精品日本一区二区三区在线 | 亚洲国产一区二区三区在线播放| 国产一区二区精品久| 伊人久久视频| 伊人久久亚洲| 久久影院午夜精品| 亚洲免费婷婷| 国产精品99一区二区三| 噜噜噜躁狠狠躁狠狠精品视频| 人人香蕉久久| 香蕉视频成人在线观看| 麻豆中文一区二区| 91久久久久| 日韩av自拍| 亚洲精品伊人| 精品三级在线观看视频| 亚洲视频国产| 日产精品一区| 欧美一区二区三区久久精品| 蜜臀av免费一区二区三区| 国产黄色精品| 蜜臀av亚洲一区中文字幕| 国产极品嫩模在线观看91精品| 国产欧美欧美| 日韩精品免费一区二区在线观看 | 精品美女久久| 亚洲激精日韩激精欧美精品| 国产精品白浆| 99久久亚洲精品蜜臀| 亚洲精品伊人| 欧美日韩国产在线观看网站 | 一区免费在线| 久久免费福利| 日本aⅴ亚洲精品中文乱码| 日本欧美不卡| 国产精品久久久久久久久免费高清| 国产日韩欧美一区二区三区在线观看| 久久国产88| а√天堂8资源在线| 免费黄网站欧美| 私拍精品福利视频在线一区| 欧美成人一二区| 清纯唯美亚洲综合一区| 首页欧美精品中文字幕| 91精品国产成人观看| 精品国产不卡| 国产日韩欧美三级| 在线精品福利| 亚洲精品一二三区区别| 97人人精品| 麻豆高清免费国产一区| 青青国产精品| 五月亚洲婷婷 | 国内自拍视频一区二区三区| 香蕉久久久久久久av网站| 91精品国产成人观看| 欧美日韩国产观看视频| 国产精品久久久免费| 奇米狠狠一区二区三区| 中文字幕一区二区三区日韩精品| 国产欧美一级| 噜噜噜久久亚洲精品国产品小说| 日本中文字幕一区二区| 欧美在线网站| 国产在线成人| 亚洲香蕉网站| 久久久成人网| 亚洲91视频| 美女久久久久| 2023国产精品久久久精品双| 欧美成人午夜| 免费视频亚洲| 最新日韩欧美| 国产一区白浆| 免费人成黄页网站在线一区二区| 日本午夜精品久久久久| 免费成人性网站| 在线观看亚洲精品福利片| 视频精品一区二区| 亚洲日韩视频| 91久久精品无嫩草影院| 亚洲免费观看高清完整版在线观| 久久超碰99| 麻豆久久一区| 久久精品国产999大香线蕉| 美女国产一区二区三区| 国产成人77亚洲精品www| 久久久久久夜| 午夜精品成人av| 综合激情婷婷| 欧美日韩夜夜| 亚洲一区二区网站| 久热精品在线| 亚洲伊人影院| 欧美亚洲综合视频| 久久精品欧洲| 91亚洲精品视频在线观看| 日韩欧美2区| 国产精品日韩精品中文字幕| 精品淫伦v久久水蜜桃| 日本少妇一区| 亚洲欧美日韩国产| 91亚洲精品视频在线观看| 国产精品成人国产| 国产精品99视频| 午夜影院欧美| 日韩精品导航| 欧美国产一级| 在线一区电影| 69堂免费精品视频在线播放| 精品精品久久| 久久久久国产| 蜜乳av另类精品一区二区| 国产美女精品视频免费播放软件| 免费观看不卡av| 亚洲在线成人| 欧美中文一区| 日韩一区电影| 日韩影院在线观看| 欧美日本久久| 成人久久久久| 一区二区电影| 国产成人久久| 在线亚洲观看| 国产精品高清一区二区| 成人日韩在线观看| 在线 亚洲欧美在线综合一区| 日本精品黄色| 欧美日韩国产免费观看视频| 欧美永久精品| 欧美一区二区三区高清视频| 玖玖精品视频| 久久天堂影院| 蜜臀va亚洲va欧美va天堂| 美女毛片一区二区三区四区最新中文字幕亚洲 | 日韩中文影院| 亚洲永久字幕| 久久精品伊人| 欧美69视频| 国产日韩中文在线中文字幕| 99视频精品视频高清免费| 日韩动漫一区| 99成人超碰| 国产精品激情电影| 99综合视频| 国产成人在线中文字幕| 免费日本视频一区| 天堂av在线| 亚洲精品少妇| 久久三级视频| 嫩呦国产一区二区三区av| 视频一区二区三区中文字幕| 高清av一区| 日本成人一区二区|