看视频时,类加载器没太理解,现在再整理下几个要点
?
類加載器負責把類加載到java虛擬機即JVM中,指定類的名稱,類加載器就會定位這個類的定義,每一個java類必須由類加載器加載。
當啟動JVM的時候,我們可以使用三個類加載器:引導類加載器、擴展類加載器、應用程序類加載器
1.引導類加載器僅僅負責加載核心的Java庫,比如位于<JAVA_HOME>/jre/lib 目錄下的vm.jar,core.jar。這個類加載器,是JVM核心部分,是用native代碼寫成的。
2. 擴展類加載器負責加載擴展路徑下的代碼,一般位于<JAVA_HOME>/jre/lib/ext? 或者通過java.ext.dirs 這個系統屬性指定的路徑下的代碼。這個類加載器是由sun.misc.Launcher$ExtClassLoader 實現的。
3.應用程序類加載器負責加載java.class.path(映射系統參數 CLASSPATH的值) 路徑下面的代碼,這個類加載器是由 sun.misc.Launcher$AppClassLoader 實現的。
當處理類加載器時,父委托模式是一個需要理解的關鍵概念,它規定:類加載器在加載自己的類之前,可以委托先加載父類,父類加載器可以是客戶化的類加載器或引導類加載器。但是有一點很重要,類加載器只能委托自己的父類加載器,而不能是子類加載器,即只能向上不能向下。
自定義類加載器:雖然在絕大多數情況下,系統默認提供的類加載器實現已經可以滿足需求。但是在某些情況下,您還是需要為應用開發出自己的類加載器。比如您的應用通過網絡來傳輸?Java?類的字節代碼,為了保證安全性,這些字節代碼經過了加密處理。這個時候您就需要自己的類加載器來從某個網絡地址上讀取加密后的字節代碼,接著進行解密和驗證,最后定義出要在?Java?虛擬機中運行的類來。
轉載于:https://www.cnblogs.com/dongdong230/p/4183118.html
總結
以上是生活随笔為你收集整理的看视频时,类加载器没太理解,现在再整理下几个要点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 下 MyEclipse
- 下一篇: 【Java】BigDecimal