網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

classloader|java

欄目: IT科技 / 發佈於: / 人氣:3.24W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java classloader是什麼,讓我們一起了解一下?

ClassLoader就是用來動態加載class檔案到內存當中用的,透過Java的類加載機制來動態加載某個class檔案到內存當中的,從而只有class檔案被載入到了內存之後,才能被其它class所引用。

classloader(類加載器)的主要工作是什麼?

就是把類檔案加載到JVM中。

1、加載:定位要加載的類檔案,並將其字節流裝載到JVM中。

2、連結:給要加載的類分配最基本的內存結構儲存其資訊,比如屬性,方法以及引用的類。

java classloader

在該階段,該類還處於不可用狀態。

(1)驗證:對加載的字節流進行驗證,比如格式上的,安全方面的。

(2)內存分配:爲該類準備內存空間來表示其屬性,方法以及引用的類。

(3)解析:加載該類所引用的其它類,比如父類,實現的接口等。

3、初始化:對類變量進行賦值。

java classloader 第2張

那麼類加載器是如何實現的?

當JVM(Java虛擬機)啓動時,會形成由三個類加載器組成的初始類加載器層次結構:

bootstrap classloader            extension classloader      system classloader

bootstrap classloader -引導(也稱爲原始)類加載器,它負責加載Java的核心類。在Sun的JVM中,在執行java的命令中使用-Xbootclasspath選項指定附加的類。這個加載器的是非常特殊的,它實際上不是 java.lang.ClassLoader的子類,而是由JVM自身實現的。大家可以透過執行以下代碼來獲得bootstrap classloader加載了那些核心類庫:

URL[] urls=sun.misc.Launcher.getBootstrapClassPath().getURLs();   for (int i = 0; i < urls.length; i++) {     System.out.println(urls.toExternalform());   }





Tags:java