雙親委派機制和沙箱安全機制
如果對類加載器沒有了解的可以先看我另一篇文章講得是類加載器點擊傳送
概述
為什么需要雙親委派機制和沙箱安全機制,舉個栗子,如果說我們任何人都可以在專案里去定義一個java.lang包下的String類進行使用的話,就說明java核心的API可以被隨意篡改,這樣即不安全,也不規范了,
雙親委派機制
作業原理:
如果一個類加載器收到了類加載請求,它并不會自己先去加載,而是把這個請求委托給自己的父類加載器去執行,如果父類加載器存在父類則進一步向上進行委托,依次遞回,最終到達頂層啟動類加載器, 如果父類加載器可以完成類加載任務,就成功回傳,反之,子加載器才會嘗試自己去加載,這就是雙親委派模式
沙箱安全機制
自定義String類,但在加載自定義String類的時候會先使用引導類加載器加載,而引導類加載器在加載的程序中會先加載jdk自帶的檔案,報錯說沒有main方法,就是因為加載的是rt.jar包中的String,這樣就可以保證對加載核心源代碼的保護,這就是沙箱安全機制
其他
所以在虛擬機中判斷兩個物件是否為同一個類的兩個條件
- 類的完整類名是否一致
- 加載這個類的ClassLoader(類加載器)是否相同,
小結
雙親委派機制和沙箱安全機制都是為了保護核心源代碼的安全,并且保證所有的類只能被加載一次,
禿頭萌新一枚 多多關照
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/243267.html
標籤:其他
