java classloader是什么,讓我們一起了解一下?
ClassLoader就是用來動態加載class文件到內存當中用的,通過Java的類加載機制來動態加載某個class文件到內存當中的,從而只有class文件被載入到了內存之后,才能被其它class所引用。
classloader(類加載器)的主要工作是什么?
就是把類文件加載到JVM中。
1、加載:定位要加載的類文件,并將其字節流裝載到JVM中。
2、鏈接:給要加載的類分配最基本的內存結構保存其信息,比如屬性,方法以及引用的類。
在該階段,該類還處于不可用狀態。
(1)驗證:對加載的字節流進行驗證,比如格式上的,安全方面的。
(2)內存分配:為該類準備內存空間來表示其屬性,方法以及引用的類。
(3)解析:加載該類所引用的其它類,比如父類,實現的接口等。
3、初始化:對類變量進行賦值。
那么類加載器是如何實現的?
當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?以上就是小編今天的分享了,希望可以幫助到大家。