面试必会系列 - 1.4 类加载机制
生活随笔
收集整理的這篇文章主要介紹了
面试必会系列 - 1.4 类加载机制
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文已收錄至 github,完整圖文:https://github.com/HanquanHq/MD-Notes
類加載機制
類加載機制,類加載的過程?
- 成員變量按照順序賦初始值
- 執(zhí)行構(gòu)造方法語句
雙親委派機制(parent 翻譯不準確,應(yīng)為父類委派機制)
雙親委派機制是一個遞歸,不同的類加載器加載不同的 class。
Bootstrap ClassLoader 啟動類加載器
-
C++實現(xiàn)
-
加載 <JAVA_HOME>/lib下的類,是 jdk 最核心的內(nèi)容,例如 rt.jar, charset.jar
-
加載路徑:sun.boot.class.path
Extension ClassLoader 擴展類加載器
-
Java 實現(xiàn)
-
加載擴展包中的類,在 jdk 安裝目錄 jre/lib/ext 下的 jar
-
加載路徑:java.ext.dirs
Application ClassLoader 系統(tǒng)類加載器
-
我們寫的代碼默認就是由它來加載
-
加載 classpath 指定的內(nèi)容
-
加載路徑:java.class.path
User ClassLoader 用戶自定義加載器
- 加載自己定義的加載器
類加載器的加載過程
為什么要搞雙親委派?
主要為了安全。如果任何一個 class 都可以把它 load 到內(nèi)存的話,那我就可以自定義一個 java.lang.string 類,交給自定義的 ClassLoader,把這個我自己的 string 類打包給客戶,它被 load 進內(nèi)存,然后客戶把密碼存儲成 String 類型對象,我偷摸把密碼發(fā)給自己,這樣就不安全了。
總結(jié)
以上是生活随笔為你收集整理的面试必会系列 - 1.4 类加载机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线性代数:如何最通俗地理解矩阵的「秩」?
- 下一篇: 线性代数:特征值有重根时,相同特征值对应