天天看點

Java常見面試題:ClassLoader加載

ClassLoader是一個類加載器,在Java裡面類加載器并不隻有一個,我們自己所編寫的類加載器往往都去繼承ClassLoader,是以自己的加載器是最後一次執行的。

Java常見面試題:ClassLoader加載

所有的Java程式類加載器一共分為兩套類加載器:雙親加載;

(1)系統中的類都會由一個系統内部最高的類加載器負責加載,如果啟動的時候要加載的系統類太多了,那麼一定會造成啟動變慢,是以JDK1.9才提出了一個子產品化設計;

(2)如果使用者自己定義的類,會使用其它的類加載器(ExtClassLoader、AppClassLoader、自己定義的的類加載器),這樣可以避免系統安全問題。

什麼是系統安全問題?

比如在Java裡面有一個java.lang.string,如果你現在定義了完全一樣的java.lang.string類,那麼最終所帶來的問題就有可能造成安全隐患,是以JDK在設計的時候為了防止這種問題的出現,采用了雙親加載機制,以保證系統安全。

同時使用自定義的類加載器還有一個好處,可以由使用者自己來定義類檔案的來源,預設情況下的類加載器(99%是夠用的)都是通過ClassPath加載的,但是使用了自定義的加載器可以通過遠端或檔案進行加載。

更多專業知識,面試技巧就在面試一點通,持續更新中……

感謝浏覽~

本内容來源于

阿裡雲大學-Java面試技巧