Java基礎(3)------類加載器

簡介

java虛擬機中的類加載器負責加載來自文件系統、網絡或其餘來源的類文件,默認使用的是雙親委派模式,有如下三種默認的類加載器:java

  • Bootstrap ClassLoader:它是全部類加載器的父加載器,它沒有任何父加載器,它負責加載rt.jar(是JAVA基礎類庫,即咱們在java文檔裏面看到的class)
  • Extension ClassLoader:負責加載 Java 的擴展類庫,也就是從jre/lib/ext目或者java.ext.dirs系統屬性指定的目錄下加載類.(好比 swing 系列、內置的 js 引擎、xml 解析器 等等,這些庫名一般以 javax 開頭,它們的 jar 包位於 JAVA_HOME/lib/ext/*.jar 中,有不少 jar 包)
  • System ClassLoader負責從classpath變量中加載類文件(由Jar中Manifest文件的classpath屬性指定),它是Extension ClassLoader的子加載器。

雙親委派模式

  • 在加載類文件的時候,子加載器會先將請求委託給它的父加載器,父加載器會檢測是否已經加載過此類,若是加載過此類這次加載就已經結束,若是沒有的話,繼續請求,直至Bootstrap ClassLoader類,若是仍是沒有,若是再次加載失敗,就會使用子加載器架子啊,直至發起請求的子加載器位置
  • 該模式的主要特色爲亮點:
  1. 子加載器能夠使用父加載器已經加載的類,而父加載器沒法使用子加載器加載的類
  2. 父加載器加載過的類沒法被子加載器再次加載
相關文章
相關標籤/搜索