Java--自定義類載入器 雙親委派機制
阿新 • • 發佈:2022-03-11
JVM中提供了三層的ClassLoader:
Bootstrap classLoader:主要負責載入核心的類庫(java.lang.*等),構造ExtClassLoader和APPClassLoader。
ExtClassLoader:主要負責載入jre/lib/ext目錄下的一些擴充套件的jar。
AppClassLoader:主要負責載入應用程式的主函式類
下面引用這張圖片很清晰的表示了類載入的過程
雙親委派模型也就是一開始把這個要載入的類拿去父載入器中看是否載入過了,有就返回沒有就向上一層載入器查詢,一層層遞迴,如果都沒有載入,就從 Bootstrap classLoader載入器開始返回嘗試用自己的classloader載入。就是程式碼
//子載入器進行類載入
c = findClass(name);
打破雙親委派機制
1.重寫loadClass()方法破壞雙親委派模型
重寫來自定義使用什麼類載入器,還能自定義載入委派機制。
2.執行緒上下文類載入器破壞雙親委派模型
原文連結:https://blog.csdn.net/codeyanbao/article/details/82875064
參考連結:https://www.cnblogs.com/twoheads/p/10143038.html