jvm双亲委派机制
雙親委派模型的工作過程是:如果一個類加載器收到了類加載的請求,它首先不會自己去嘗試加載這個類,而是把這個請求委派給父類加載器去完成,每一個層次的類加載器都是如此,因此所有的加載請求最終都應該傳送到最頂層的啟動類加載器中,只有當上一層類加載器反饋自己無法完成這個加載請求(它的搜索范圍中沒有找到這個類)時,下一層類加載器才會嘗試自己去加載;
JDK為什么要設計雙親委派模型,有什么好處?
1、確保安全,避免Java核心類庫被修改;
2、避免重復加載;
3、保證類的唯一性;
如果你寫一個java.lang.String的類去運行,發(fā)現(xiàn)會拋出如下異常;
可以打破JVM雙親委派模型嗎?如何打破JVM雙親委派模型?
可以;
想要打破這種模型,那么就自定義一個類加載器,重寫其中的loadClass方法,使其不進行雙親委派即可;
補充:
https://zhuanlan.zhihu.com/p/269214344
總結
- 上一篇: jvm在创建对象时采用哪些并发安全机制
- 下一篇: jvm 什么是对象头,里面有什么