Java基础——类加载机制
什么叫類加載
JVM把 .class 字節碼文件加載到內存,并進行相關的校驗、解析、初始化,最終轉換為虛擬機可用的JAVA類型的過程,稱為JVM類加載機制。
(當然,JVM并不關心class文件的來源,什么?什么叫class文件?——每一個Java class文件都對一個Java類或者Java接口做出了全面描述)
類加載器的分類
啟動(Bootstrap)類加載器:引導類裝入器是用本地代碼實現的類裝入器,它負責將?<Java_Runtime_Home>/lib下面的核心類庫或-Xbootclasspath選項指定的jar包加載到內存中。由于引導類加載器涉及到虛擬機本地實現細節,開發者無法直接獲取到啟動類加載器的引用,所以不允許直接通過引用進行操作。(也叫根加載器)
擴展(Extension)類加載器:擴展類加載器是由Sun的ExtClassLoader(sun.misc.Launcher$ExtClassLoader)實現的。它負責將< Java_Runtime_Home >/lib/ext或者由系統變量-Djava.ext.dir指定位置中的類庫加載到內存中。開發者可以直接使用標準擴展類加載器。
系統(System)類加載器:系統類加載器是由?Sun的?AppClassLoader(sun.misc.Launcher$AppClassLoader)實現的。它負責將系統類路徑java -classpath或-Djava.class.path變量所指的目錄下的類庫加載到內存中。開發者可以直接使用系統類加載器。
這三個類加載器還分階級
3的領導是2 2的領導是1 1就是BOSS
雙親委派模型
雙親委派模型的工作過程為:如果一個類加載器收到了類加載的請求,它首先不會自己去嘗試加載這個類,而是把這個請求委派給父類加載器去完成,每一個層次的加載器都是如此,因此所有的類加載請求都會傳給頂層的啟動類加載器,只有當父加載器反饋自己無法完成該加載請求(該加載器的搜索范圍中沒有找到對應的類)時,子加載器才會嘗試自己去加載
轉載于:https://www.cnblogs.com/zhuangwei1015/p/10010025.html
總結
以上是生活随笔為你收集整理的Java基础——类加载机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql共享锁
- 下一篇: 【Java】JavaSocket编程开发