類加載器以及雙親委派

類加載器:負責讀取java字節碼,並轉成java.lang.Class類的一個實例
在這裏插入圖片描述
雙親委派模式優點:
1:雙親委派使得類加載有了層級優先級,通過這種機制來保證加載過的類不會被重複加載【父類加載過則子類無需加載】
2:安全問題:Bootstrap ClassLoader 會加載JVM需要的核心java包,這是時傳來一個java.lang.Integer的類Bootstrap ClassLoader檢測到該類已經加載過了,所以直接返回class,而不是重新加載,防止核心API庫被篡改

在類進行加載之前,首先在緩衝區查看該類是否被加載過了,如果加載過了則直接返回一個class對象,如果未被加載,則首先查看本類加載器的父類加載器是否存在,如果存在則委託父類進行加載,如果父類加載器爲null,代表子類加載器是擴展類加載器,而其父類爲啓動類加載器,使用委託給啓動類加載器進行加載,若以上父類未成功,則最後使用自定義類加載器進行加載
findClass方法默認拋出ClassNotFoundException,子類通過重寫findClass調用自定義類加載器
java虛擬機把描述類的數據從class文件加載到內存,並對數據進行校驗,轉換解析和初始化,最終形成可以被虛擬機使用的java類型,這就是虛擬機的加載機制
類型的加載連接初始化過程都是在程序運行期間完成的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章