<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. Java類別載入器

    時間:2025-12-20 16:08:41 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語句,則不載入。

      如:/pic/p>

      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();

      }

      }

      }

      /pic/p>

      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類別的載入器12-22

    Java與Java web的區別01-30

    淺談Java語言與Java 技術12-19

    英文盤點服飾類別單詞11-27

    服飾類別單詞匯總12-03

    中國院校類別介紹08-14

    Java與Java web有什么不同12-05

    java教程之Java編程基礎12-06

    談Java語言與Java技術的介紹02-19

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