Java類別的載入器

類加載器(class loader)是Java中的一個很重要的概念。類加載器負責加載 Java 類的字節代碼到Java虛擬機中!下面是小編爲大家搜索整理的Java類別載入器,希望大家能有所收穫,更多精彩內容請及時關注我們考試網!

Java類別的載入器

1 Java的動態特性

Java的動態特性有兩種,一是隱式的;另一種是顯示的。隱式的(implicit)方法就是當程式設計師用到new 這個Java 關鍵字時,會讓類別載入器依需求載入您所需要的類別,這種方式使用了隱式的(implicit)方法。顯式的方法,又分成兩種方式,一種是藉由s 裏的forName()方法,另一種則

是藉由sLoader 裏的loadClass()方法。您可以任意選用其中一種方法。

2 隱式的動態特性

在執行java文件時,只有單獨的'變量聲明是不會載入相應的類的,只有在用new生成實例時才載入

如示例所示:

public class Main

public static void main(String args[])

{

A a1 = new A() ;

B b1 ;

}

類A和B相同,如下:

public class A

{

public void print(“using A”);

}

編譯後,可用java –verbose:class Main運行,察看輸出結果。可以看到JVM只載入了A,而沒有載入B.

另外,類的載入只在執行到new一個類時,才載入,如果沒有執行到new語句,則不載入。

如://類Office

public class Office

{

public static void main(String[] args)

{

Word myword=null;

Excel myexcel=null;

if (args[0]ls("Word"))

{

myword = new Word();

t();

}

if (args[0]ls("Excel"))

{

myexcel = new Excel();

t();

}

}

}

//類Word和Excel基本相同,如下

public class Word

{

public void start()

{

tln("using word");

}

}

在dos命令提示符下,輸入java –verbose Office Excel可以看到JVM只載入Excel類,而不載入Word類。

3 顯示的動態特性

3.1 s裏的forName()方法

在上一個Office示例中,進行如下修改:

一 加入Assembly類

public interface Assembly

{

public void start();

}

二 讓Word和Excel類實現該接口

public class Word implements Assembly

{

public void start()

{

tln("using word");

}

}

三 Office 類如下所示

public class Office

{

public static void main(String[] args) throws Exception

{

s c = ame(args[0]);

Object o = nstance();

Assembly a = (Assembly)o;

t();

}

}