1. 程式人生 > >【2019春招準備:4.JVM java編譯器 java直譯器------4.2載入器雙親委派模型和破壞】

【2019春招準備:4.JVM java編譯器 java直譯器------4.2載入器雙親委派模型和破壞】

https://blog.csdn.net/zhangcanyan/article/details/78993959
雙親委派模型:Parents Delegation Model
作用:解決了各個類載入器的基礎類統一的問題
模型的流程:一個classLoader收到類載入的請求,不會直接載入,而是將請求委派給父類載入器完成,逐級往上。只有當上層知道無法完成工作的時候,才會呼叫兒子。

在這裡插入圖片描述

破壞

第一次破壞

java.lang.ClassLoader在jdk1.0的時候就已經存在,雙親模型引入是jdk1.2
java.lang.ClassLoader中新增findClass(protected)方法,可以寫入自己的類載入邏輯;1.0的時候是繼承然後重寫loadClass方法,現在是loadClass載入失敗會呼叫findLClass方法。

第二次破壞?

需要呼叫classpath下面的介面類,進行載入,但是類載入器不認識
設計增添一個執行緒上下文載入器(Thread context classloader),可以從父程序那裡繼承或者自己設定。
這種情況,父親載入器請求子類街在其進行完成

第三次破壞??

使用者程式追求動態性,如OSGi,將樹狀結構變成了網狀結構