<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    Java類別的載入器

    時間:2025-04-11 07:20:40 java語言 我要投稿
    • 相關推薦

    Java類別的載入器

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

      1 Java的動態特性

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

      是藉由java.lang.ClassLoader 里的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].equals("Word"))

      {

      myword = new Word();

      myword.start();

      }

      if (args[0].equals("Excel"))

      {

      myexcel = new Excel();

      myexcel.start();

      }

      }

      }

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

      public class Word

      {

      public void start()

      {

      System.out.println("using word");

      }

      }

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

      3 顯示的動態特性

      3.1 java.lang.Class里的forName()方法

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

      一 加入Assembly類

      public interface Assembly

      {

      public void start();

      }

      二 讓Word和Excel類實現該接口

      public class Word implements Assembly

      {

      public void start()

      {

      System.out.println("using word");

      }

      }

      三 Office 類如下所示

      public class Office

      {

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

      {

      java.lang.Class c = java.lang.Class.forName(args[0]);

      Object o = c.newInstance();

      Assembly a = (Assembly)o;

      a.start();

      }

      }

    【Java類別的載入器】相關文章:

    Java類別載入器06-20

    Java的類07-19

    Java的類常識08-28

    java類的構成08-02

    Java import以及Java類的搜索路徑09-14

    Java類加載器類介紹06-13

    淺談Java類與類之間的關系09-03

    什么是java集合類05-29

    Java類基本構成05-11

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人