類加載器加載Class大致要經過哪寫步驟?

阿裏雲問答 2022-01-07 17:43:37 阅读数:845

class 大致

類加載器加載Class大致要經過哪寫步驟?




采納答案1:

"類加載器加載Class大致要經過如下8個步驟。 (1)檢測此Class是否載入過(即在緩存區中是否有此Class),如果有則直接進入第8步,否則接著執行第2步。 注意:JVM的根類加載器並不是Java實現的,而且由於程序通常無須訪問根類加載器,因此訪問擴展類加載器的父類加載器時返回null。 (2)如果父類加載器不存在(如果沒有父類加載器,則要麼parent一定是根類加載器,要麼本身就是根類加載器),則跳到第4步執行;如果父類加載器存在,則接著執行第3步。 (3)請求使用父類加載器去載入目標類,如果成功載入則跳到第8步,否則接著執行第5步。 (4)請求使用根類加載器來載入目標類,如果成功載入則跳到第8步,否則跳到第7步。 (5)當前類加載器嘗試尋找Class文件(從與此ClassLoader相關的類路徑中尋找),如果找到則執行第6步,如果找不到則跳到第7步。 (6)從文件中載入Class,成功載入後跳到第8步。 (7)拋出ClassNotFoundException异常。 (8)返回對應的java.lang.Class對象。 其中,第5、6步允許重寫ClassLoader的findClass()方法來實現自己的載入策略,甚至重寫loadClass()方法來實現自己的載入過程。"


版权声明:本文为[阿裏雲問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071743374475.html