クラスローダの詳細分析
3287 ワード
クラスローダの詳細分析
クラス・ローダ接続と初期化
クラスのロード
クラスの検証
クラスの準備
クラスの解析
クラスの初期化
クラスの初期化手順
クラス初期化話のタイミング
クラスを初期化しても実装されたインタフェースは初期化されません
クラスローダ
java
,Java
System.exit()
Java
クラス・ローダ接続と初期化
:
:
:
: ,
:
:
Java :
Java Java “ ”
( ):
,
( Class.forName(“com.shengsiyuan.Test”) )
Java (Java Test)
, Java
,
クラスのロード
.class , , java.lang.Class ,
.class :
1.
2. .class
3. zip,jar .class
4. .class
5. Java .class
Class
Class , Java
:
1.Java
(Bootstrap)
(Extension)
(System)
2.
java.lang.ClassLoader
JVM , .class , (LinkageError )
,
クラスの検証
, 。 。
1. : java
2. : java , final , final
3. : java 。 java ( ), , 。 , 。
4. : 。
クラスの準備
,java , 。
クラスの解析
,java 。 Worler gotoWork() Car run() , Worker , Car run()
, run() 。 ,java , Car run() ,
クラスの初期化
,java , 。
, :(1) :(2)
。 ,java
クラスの初期化手順
(1) , 。
(2) , , 。
(3) ,
クラス初期化話のタイミング
( )
1. new
2. ,
3.
4. ( Class.forName(“com.shengsiyuan.Test”) )
5.
6. Java (Java Test)
, Java
クラスを初期化しても実装されたインタフェースは初期化されません
java , , 。
(1) , 。
(2) ,
, 。 ,
,
ClassLoader loadClass , , 。
クラスローダ
java 。 jdk1.2 。 ,
java 。 , java , 。
java loader1 Sample 。loader1 Sample , , ,
loader1 Sample 。
:
1. (Bootstrap) :
2. (Extension)
3. (System)
,java java.lang.ClassLoader。