日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

JVM系列(之ClassLoader)

發(fā)布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JVM系列(之ClassLoader) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Class Loader

Java運作流程

內(nèi)部class?loader

  • bootstrap?class?loader?--引導(dǎo)類加載器,它負責(zé)加載Java的核心類【java.*?】(如classpath下面的類庫),不是?java.lang.ClassLoader的子類,而是由JVM自身實現(xiàn)的。Code?.?URL[]?urls=sun.misc.Launcher.getBootstrapClassPath().getURLs(); ?
  • extension?classloader?-擴展類加載器,它負責(zé)加載JRE的擴展目錄【javax.*?】(JAVA_HOME/jre/lib/ext或者由java.ext.dirs系統(tǒng)屬性指定的)中JAR的類包。
  • system?classloader?-系統(tǒng)(也稱為應(yīng)用)類加載器,它負責(zé)加載系統(tǒng)或用戶實現(xiàn)的類,在JVM被啟動時,加載來自在命令java中的-classpath或者java.class.path系統(tǒng)屬性或者?CLASSPATH操作系統(tǒng)屬性所指定的JAR類包和類路徑,如果沒有特別指定,則用戶自定義的任何類加載器都將該類加載器作為它的父加載器。ClassLoader.getSystemClassLoader()獲取。

ClassLoader加載過程

  classloader?加載類用的是全盤負責(zé)委托機制。所謂全盤負責(zé),即是當(dāng)一個classloader加載一個Class的時候,這個Class所依賴的和引用的所有?Class也由這個classloader負責(zé)載入,除非是顯式的使用另外一個classloader載入;委托機制則是先讓parent(父)類加載器?(而不是super,它與parent?classloader類不是繼承關(guān)系)尋找,只有在parent找不到的時候才從自己的類路徑中去尋找。

按Loader的應(yīng)用場景分類

  • 系統(tǒng)class?loader
  • 調(diào)用者?class?loader

  加載當(dāng)前類,可以是SystemClassLoader,通過getClass().getClassLoader()來得到

  

  Output

  

  • 線程上下文class?loader

?  每一個線程都有一個關(guān)聯(lián)的上下文ClassLoader.如果使用new?Thread()方式生成新的線程,新線程將繼承其父線程的上下文ClassLoader.

  

  Output

  

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/mixes/p/4108538.html

總結(jié)

以上是生活随笔為你收集整理的JVM系列(之ClassLoader)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。