国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JVM工作原理與實(shí)戰(zhàn)(十四):JDK9及之后的類(lèi)加載器

這篇具有很好參考價(jià)值的文章主要介紹了JVM工作原理與實(shí)戰(zhàn)(十四):JDK9及之后的類(lèi)加載器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

專(zhuān)欄導(dǎo)航

JVM工作原理與實(shí)戰(zhàn)

RabbitMQ入門(mén)指南

從零開(kāi)始了解大數(shù)據(jù)


目錄

專(zhuān)欄導(dǎo)航

前言

一、JDK8及之前的類(lèi)加載器

二、JDK9及之后的類(lèi)加載器

1.啟動(dòng)類(lèi)加載器

2.平臺(tái)類(lèi)加載器(擴(kuò)展類(lèi)加載器)

總結(jié)


前言

JVM作為Java程序的運(yùn)行環(huán)境,其負(fù)責(zé)解釋和執(zhí)行字節(jié)碼,管理內(nèi)存,確保安全,支持多線程和提供性能監(jiān)控工具,以及確保程序的跨平臺(tái)運(yùn)行。本文主要介紹了JDK8及之前的類(lèi)加載器、JDK9及之后的類(lèi)加載器等內(nèi)容。 ?


一、JDK8及之前的類(lèi)加載器

JDK8及之前的版本中,擴(kuò)展類(lèi)加載器和應(yīng)用程序類(lèi)加載器的源碼位于rt.jar包中的sun.misc.Launcher.java。默認(rèn)的類(lèi)加載器層次結(jié)構(gòu)如下:

  • 啟動(dòng)類(lèi)加載器(Bootstrap):這是最頂層的類(lèi)加載器,負(fù)責(zé)加載Java的核心類(lèi)庫(kù),如java.lang包中的類(lèi)等。它是用C++編寫(xiě)的,是Java虛擬機(jī)底層實(shí)現(xiàn)的一部分。
  • 擴(kuò)展類(lèi)加載器(Extension):這是Bootstrap的子類(lèi)加載器,負(fù)責(zé)加載Java的擴(kuò)展類(lèi)庫(kù)。它是ClassLoader的子類(lèi),通過(guò)調(diào)用父類(lèi)的loadClass()方法來(lái)加載類(lèi)。
  • 應(yīng)用程序類(lèi)加載器(Application):這是Extension的子類(lèi)加載器,負(fù)責(zé)加載應(yīng)用程序的類(lèi)。它是ClassLoader的子類(lèi),通過(guò)調(diào)用父類(lèi)的loadClass()方法來(lái)加載類(lèi)。
    ?

JVM工作原理與實(shí)戰(zhàn)(十四):JDK9及之后的類(lèi)加載器,JVM工作原理與實(shí)戰(zhàn),jvm,java,后端,架構(gòu)

詳細(xì)講解可以查看之前的文章:

JVM工作原理與實(shí)戰(zhàn)(八):類(lèi)加載器的分類(lèi)-CSDN博客文章瀏覽閱讀920次,點(diǎn)贊33次,收藏14次。JVM作為Java程序的運(yùn)行環(huán)境,其負(fù)責(zé)解釋和執(zhí)行字節(jié)碼,管理內(nèi)存,確保安全,支持多線程和提供性能監(jiān)控工具,以及確保程序的跨平臺(tái)運(yùn)行。本文主要介紹了類(lèi)加載器、類(lèi)加載器的分類(lèi)等內(nèi)容。https://blog.csdn.net/jiangyq_/article/details/135426071JVM工作原理與實(shí)戰(zhàn)(九):類(lèi)加載器-啟動(dòng)類(lèi)加載器-CSDN博客文章瀏覽閱讀1k次,點(diǎn)贊27次,收藏18次。JVM作為Java程序的運(yùn)行環(huán)境,其負(fù)責(zé)解釋和執(zhí)行字節(jié)碼,管理內(nèi)存,確保安全,支持多線程和提供性能監(jiān)控工具,以及確保程序的跨平臺(tái)運(yùn)行。本文主要介紹了啟動(dòng)類(lèi)加載器、通過(guò)啟動(dòng)類(lèi)加載器去加載用戶jar包等內(nèi)容。https://blog.csdn.net/jiangyq_/article/details/135445533JVM工作原理與實(shí)戰(zhàn)(十):類(lèi)加載器-Java類(lèi)加載器-CSDN博客文章瀏覽閱讀1k次,點(diǎn)贊27次,收藏16次。?JVM作為Java程序的運(yùn)行環(huán)境,其負(fù)責(zé)解釋和執(zhí)行字節(jié)碼,管理內(nèi)存,確保安全,支持多線程和提供性能監(jiān)控工具,以及確保程序的跨平臺(tái)運(yùn)行。本文主要介紹了擴(kuò)展類(lèi)加載器、通過(guò)擴(kuò)展類(lèi)加載器去加載用戶jar包、應(yīng)用程序類(lèi)加載器等內(nèi)容。 ?https://blog.csdn.net/jiangyq_/article/details/135467954

二、JDK9及之后的類(lèi)加載器

在JDK9發(fā)布之后,Java引入了模塊化系統(tǒng),導(dǎo)致類(lèi)加載器在設(shè)計(jì)上產(chǎn)生了重大變革。為了適應(yīng)這一變化,Java類(lèi)被封裝在jmod文件中,并保存在名為jmods的文件夾中。這樣的結(jié)構(gòu)有助于更好地管理和組織Java類(lèi),同時(shí)提高代碼的可維護(hù)性和安全性。

JVM工作原理與實(shí)戰(zhàn)(十四):JDK9及之后的類(lèi)加載器,JVM工作原理與實(shí)戰(zhàn),jvm,java,后端,架構(gòu)

1.啟動(dòng)類(lèi)加載器

在JDK 9及之后的版本中,啟動(dòng)類(lèi)加載器是用Java編寫(xiě)的,并位于jdk.internal.loader.ClassLoaders類(lèi)中。

在Java中,BootClassLoader從模塊中尋找要加載的字節(jié)碼資源文件,這是通過(guò)繼承自內(nèi)置類(lèi)加載器BuiltinClassLoader并實(shí)現(xiàn)相應(yīng)的功能來(lái)實(shí)現(xiàn)的。

值得注意的是,啟動(dòng)類(lèi)加載器仍然無(wú)法通過(guò)Java代碼直接獲取,返回值仍然是null,從而保持了統(tǒng)一性。

JVM工作原理與實(shí)戰(zhàn)(十四):JDK9及之后的類(lèi)加載器,JVM工作原理與實(shí)戰(zhàn),jvm,java,后端,架構(gòu)

2.平臺(tái)類(lèi)加載器(擴(kuò)展類(lèi)加載器)

在JDK 9及之后,擴(kuò)展類(lèi)加載器被替換為平臺(tái)類(lèi)加載器。這個(gè)類(lèi)加載器遵循模塊化方式加載字節(jié)碼文件,因此它的繼承關(guān)系從URLClassLoader變?yōu)榱薆uiltinClassLoader。BuiltinClassLoader實(shí)現(xiàn)了從模塊中加載字節(jié)碼文件的功能。平臺(tái)類(lèi)加載器的存在更多的是為了與老版本的設(shè)計(jì)方案兼容,自身并沒(méi)有特殊的邏輯。

JVM工作原理與實(shí)戰(zhàn)(十四):JDK9及之后的類(lèi)加載器,JVM工作原理與實(shí)戰(zhàn),jvm,java,后端,架構(gòu)


總結(jié)

JVM是Java程序的運(yùn)行環(huán)境,負(fù)責(zé)字節(jié)碼解釋、內(nèi)存管理、安全保障、多線程支持、性能監(jiān)控和跨平臺(tái)運(yùn)行。本文主要介紹了JDK8及之前的類(lèi)加載器、JDK9及之后的類(lèi)加載器等內(nèi)容,希望對(duì)大家有所幫助。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-815028.html

到了這里,關(guān)于JVM工作原理與實(shí)戰(zhàn)(十四):JDK9及之后的類(lèi)加載器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JVM工作原理與實(shí)戰(zhàn)(六):類(lèi)的生命周期-連接階段

    JVM工作原理與實(shí)戰(zhàn)(六):類(lèi)的生命周期-連接階段

    JVM工作原理與實(shí)戰(zhàn) RabbitMQ入門(mén)指南 從零開(kāi)始了解大數(shù)據(jù) 目錄 專(zhuān)欄導(dǎo)航 前言 一、類(lèi)的生命周期 1.加載(Loading) 2.連接(Linking) 3.初始化(Initialization) 4.使用(Using) 5.卸載(Unloading) 二、連接階段 1.驗(yàn)證 2.準(zhǔn)備 3.解析 總結(jié) JVM作為Java程序的運(yùn)行環(huán)境,其負(fù)責(zé)解釋和執(zhí)行字

    2024年02月02日
    瀏覽(26)
  • JVM工作原理與實(shí)戰(zhàn)(十六):運(yùn)行時(shí)數(shù)據(jù)區(qū)-Java虛擬機(jī)棧

    JVM工作原理與實(shí)戰(zhàn)(十六):運(yùn)行時(shí)數(shù)據(jù)區(qū)-Java虛擬機(jī)棧

    JVM工作原理與實(shí)戰(zhàn) RabbitMQ入門(mén)指南 從零開(kāi)始了解大數(shù)據(jù) 目錄 專(zhuān)欄導(dǎo)航 前言 一、運(yùn)行時(shí)數(shù)據(jù)區(qū) 二、Java虛擬機(jī)棧 1.棧幀的組成 2.局部變量表 3.操作數(shù)棧 4.幀數(shù)據(jù) 總結(jié) JVM作為Java程序的運(yùn)行環(huán)境,其負(fù)責(zé)解釋和執(zhí)行字節(jié)碼,管理內(nèi)存,確保安全,支持多線程和提供性能監(jiān)控工具

    2024年01月20日
    瀏覽(25)
  • Java進(jìn)階(1)——JVM的內(nèi)存分配 & 反射Class類(lèi)的類(lèi)對(duì)象 & 創(chuàng)建對(duì)象的幾種方式 & 類(lèi)加載(何時(shí)進(jìn)入內(nèi)存JVM)& 注解 & 反射+注解的案例

    Java進(jìn)階(1)——JVM的內(nèi)存分配 & 反射Class類(lèi)的類(lèi)對(duì)象 & 創(chuàng)建對(duì)象的幾種方式 & 類(lèi)加載(何時(shí)進(jìn)入內(nèi)存JVM)& 注解 & 反射+注解的案例

    1.java運(yùn)行時(shí)的內(nèi)存分配,創(chuàng)建對(duì)象時(shí)內(nèi)存分配; 2.類(lèi)加載的順序,創(chuàng)建一個(gè)唯一的類(lèi)的類(lèi)對(duì)象; 3.創(chuàng)建對(duì)象的方式,new,Class.forName,clone; 4.什么時(shí)候加載.class文件進(jìn)入JVM內(nèi)存中,看到new,Class.forName; 5.如何加載?雙親委托(委派)機(jī)制:安全;AppClassLoader; 6.反射實(shí)質(zhì):能

    2024年02月14日
    瀏覽(32)
  • JDK的版本迭代(JDK9 - JDK20)

    JDK的版本迭代(JDK9 - JDK20)

    發(fā)行版本 發(fā)行時(shí)間 備注 Java 1.0 1996.01.23 Sun公司發(fā)布了Java的第一個(gè)開(kāi)發(fā)工具包 Java 5.0 2004.09.30 ①版本號(hào)從1.4直接更新至5.0;②平臺(tái)更名為JavaSE、JavaEE、JavaME Java 8.0 2014.03.18 此版本是繼Java 5.0以來(lái)變化最大的版本。是長(zhǎng)期支持版本( LTS ) Java 9.0 2017.09.22 此版本開(kāi)始,每半年更新

    2024年02月03日
    瀏覽(25)
  • JDK的版本迭代特性(JDK9 - JDK20)

    JDK的版本迭代特性(JDK9 - JDK20)

    發(fā)行版本 發(fā)行時(shí)間 備注 Java 1.0 1996.01.23 Sun公司發(fā)布了Java的第一個(gè)開(kāi)發(fā)工具包 Java 5.0 2004.09.30 ①版本號(hào)從1.4直接更新至5.0;②平臺(tái)更名為JavaSE、JavaEE、JavaME Java 8.0 2014.03.18 此版本是繼Java 5.0以來(lái)變化最大的版本。是長(zhǎng)期支持版本( LTS ) Java 9.0 2017.09.22 此版本開(kāi)始,每半年更新

    2024年02月06日
    瀏覽(28)
  • 01-從JDK源碼級(jí)別剖析JVM類(lèi)加載機(jī)制

    01-從JDK源碼級(jí)別剖析JVM類(lèi)加載機(jī)制

    上一篇:JVM虛擬機(jī)調(diào)優(yōu)大全 當(dāng)我們用java命令運(yùn)行某個(gè)類(lèi)的main函數(shù)啟動(dòng)程序時(shí),首先需要通過(guò)類(lèi)加載器把主類(lèi)加載到JVM。 通過(guò)Java命令執(zhí)行代碼的大體流程如下: 其中l(wèi)oadClass的類(lèi)加載過(guò)程有如下幾步: 加載 驗(yàn)證 準(zhǔn)備 解析 初始化 使用 卸載 加載:在硬盤(pán)上查找并通過(guò)IO讀入字

    2024年02月09日
    瀏覽(15)
  • JDK17新特性之--JDK9到JDK17 String 新增的新方法

    JDK17新特性之--JDK9到JDK17 String 新增的新方法

    JDK9之后對(duì)String底層存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)進(jìn)行了重大的修改 1 ,同步也增加了許多新的方法,主要有Text Blocks、chars()、codePoints()、describeConstable()、formatted()、indent()、isBlank()、isEmpty()、lines()、repeat()、strip()、stripLeading()、stripIndent()、stripTrailing()、translateEscapes(),接下來(lái)就逐一看看每個(gè)

    2024年02月04日
    瀏覽(23)
  • [JVM] 3. 類(lèi)加載子系統(tǒng)(2)-- 類(lèi)加載器、雙親委派機(jī)制(JDK1.8及之前)及其他

    [JVM] 3. 類(lèi)加載子系統(tǒng)(2)-- 類(lèi)加載器、雙親委派機(jī)制(JDK1.8及之前)及其他

    JDK1.8及之前和JDK9及之后的雙親委派模型是不一樣的,這里學(xué)習(xí)了1.8及以前的雙親委派模型,記錄筆記 1.8之前主要是這幾種類(lèi)加載器: 負(fù)責(zé)將存放在 JAVA_HOMElib 目錄中的,或者被-Xbootclasspath參數(shù)所指定的路徑中的,并且是虛擬機(jī)識(shí)別的(僅按照文件名,如rt.jar)類(lèi)庫(kù)加載到虛

    2024年02月16日
    瀏覽(28)
  • JDK9~17+Springboot3 @Resource常見(jiàn)問(wèn)題和解決方案

    JDK9~17+Springboot3 @Resource常見(jiàn)問(wèn)題和解決方案

    因?yàn)镴DK版本升級(jí)的改動(dòng),在Jdk9~17環(huán)境下,搭建Springboot項(xiàng)目,會(huì)出現(xiàn)原有@Resource(javax.annotation.Resource)不存在的問(wèn)題,導(dǎo)致項(xiàng)目從Jdk8遷移到高版本時(shí)遇到的問(wèn)題 原因 你可能會(huì)問(wèn),為什么javax.annotation.Resource注解不存在呢? ?從Jdk9開(kāi)始,JavaEE從Jdk中分離,jdk就移除掉了javax.a

    2024年02月04日
    瀏覽(99)
  • “深入解析JVM:揭秘Java虛擬機(jī)的工作原理“

    標(biāo)題:深入解析JVM:揭秘Java虛擬機(jī)的工作原理 摘要:本文將深入解析Java虛擬機(jī)(JVM)的工作原理,探討其內(nèi)部結(jié)構(gòu)和運(yùn)行機(jī)制。我們將介紹JVM的組成部分、類(lèi)加載過(guò)程、內(nèi)存管理、垃圾回收、即時(shí)編譯等關(guān)鍵概念,并通過(guò)示例代碼展示JVM的運(yùn)行過(guò)程。 JVM由三個(gè)主要組件組成

    2024年02月12日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包