欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jvm類加載器基礎解析

 更新時間:2017年12月28日 15:28:55   作者:iloveyin  
這篇文章主要介紹了jvm類加載器基礎解析,具有一定借鑒價值,需要的朋友可以參考下

【類加載器簡介】

類加載器(classloader)用于將類的class文件加載到JVM虛擬機。JVM有三種加載器,引導類加載器器(bootstrapclassloader)、擴展類加載器(extensionsclassloader)和應用類加載器(applicationclassloader),另外還可以繼承java.lang.ClassLoader類創(chuàng)建自定義加載器。
【類加載器種類】

1.引導類加載器(BootStrap):并不是一個Java類,采用C++語言編寫、內嵌在JVM內核里面,使用JNI(JavaNativeInterface)調用native代碼執(zhí)行。引導類加載器負責加載核心的Java類庫,比如位JAVA_HOME/jre/lib下面的rt.jar文件,該jar文件包含一些常見類如:

java.lang.System 
java.util.HashMap 

2.擴展類加載器(ExtClassLoader):繼承自java.lang.ClassLoader類,用于加載擴展路徑下面的jar文件,擴展路徑為JAVA_HOME/jre/lib/ext

3.應用類加載器(AppClassLoader):繼承自java.lang.ClassLoader類,用來加載classpath下面的類。大笑

【類加載器的委托機制】

1.當應用程序需要加載一個類時,會按照BootStrap、ExtClassLoader、AppClassLoader的順序,到相應的路徑下面加載需要的類的字節(jié)碼文件。

2.我們可以把自定義的類編譯為class文件后打成jar包,放置到JAVA_HOME/jre/lib/ext路徑。類加載器加載時,將使用ExtClassLoader加載器從JAVA_HOME/jre/lib/ext路徑加載,而不會使用AppClassLoader加載器到classpath下加載。

3.在按照BootStrap、ExtClassLoader、AppClassLoader順序使用類加載器,嘗試加載類都失敗之后,將拋出類找不到異常:java.lang.ClassNotFoundException

【應用demo】

1.BootStrap:使用C++編寫、嵌入在JVM內核、并不是一個Java類

ClassLoader loader = System.class.getClassLoader(); 
System.out.println(loader); //null 

2. AppClassLoader:使用AppClassLoader加載器加載classpath下面的類

ClassLoader loader = ClassLoaderTest.class.getClassLoader(); 
System.out.println(loader.getClass().getName()); 
//sun.misc.Launcher$AppClassLoader 

3.ExtClassLoader:用于加載JAVA_HOME/jre/lib/ext路徑下的Java類,一旦找到將不會到classpath加載。

編寫自定義Hello類,打成jar包進行導出到C:\ProgramFiles\Java\jdk1.7.0\jre\lib\ext\excelsoft.jar路徑。

ClassLoader loader = Hello.class.getClassLoader(); 
System.out.println(loader.getClass().getName()); 
//sun.misc.Launcher$ExtClassLoader 

===============================
類加載器是一個相對比較復雜的話題,僅作入門了解!

總結

以上就是本文關于jvm類加載器基礎解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • 淺談自定義注解在Spring中的應用

    淺談自定義注解在Spring中的應用

    這篇文章主要介紹了淺談自定義注解在Spring中的應用,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • struts2實現(xiàn)文件上傳顯示進度條效果

    struts2實現(xiàn)文件上傳顯示進度條效果

    這篇文章主要為大家詳細介紹了struts2實現(xiàn)文件上傳顯示進度條效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • springboot 事件監(jiān)聽的實現(xiàn)方法

    springboot 事件監(jiān)聽的實現(xiàn)方法

    這篇文章主要介紹了springboot 事件監(jiān)聽的實現(xiàn)方法,并詳細的介紹了四種監(jiān)聽方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 支撐Java NIO與NodeJS的底層技術

    支撐Java NIO與NodeJS的底層技術

    這篇文章主要為大家詳細介紹了支撐Java NIO與NodeJS的底層技術,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • java 多線程實現(xiàn)在線咨詢(udp)

    java 多線程實現(xiàn)在線咨詢(udp)

    這篇文章主要介紹了java 多線程實現(xiàn)在線咨詢(udp)的示例,幫助大家更好的理解和學習Java 網(wǎng)絡編程的相關內容,感興趣的朋友可以了解下
    2020-11-11
  • JVM?jstack實戰(zhàn)之死鎖問題詳解

    JVM?jstack實戰(zhàn)之死鎖問題詳解

    如果在生產(chǎn)環(huán)境發(fā)生了死鎖,我們將看到的是部署的程序沒有任何反應了,這個時候我們可以借助?jstack進行分析,下面我們實戰(zhàn)操作查找死鎖的原因
    2022-10-10
  • Idea 配置國內 Maven 源的圖文教程

    Idea 配置國內 Maven 源的圖文教程

    這篇文章主要介紹了Idea 配置國內 Maven 源的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • Spring Data MongoDB中實現(xiàn)自定義級聯(lián)的方法詳解

    Spring Data MongoDB中實現(xiàn)自定義級聯(lián)的方法詳解

    這篇文章主要給大家介紹了關于Spring Data MongoDB中實現(xiàn)自定義級聯(lián)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • Java基礎知識總結之繼承

    Java基礎知識總結之繼承

    這一篇我們來學習面向對象的第二個特征——繼承,文中有非常詳細的基礎知識總結,對正在學習java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • Java8中Optional類的使用說明

    Java8中Optional類的使用說明

    Optional類主要解決的問題是臭名昭著的空指針異常(NullPointerException),每個Java程序員都非常了解的異常,這篇文章主要給大家介紹了關于Java8中Optional類使用的相關資料,需要的朋友可以參考下
    2021-11-11

最新評論