av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

java語(yǔ)言

Java類別載入器

時(shí)間:2025-04-29 15:28:19 java語(yǔ)言 我要投稿

Java類別載入器

  類加載器(class loader)是Java中的一個(gè)很重要的概念。類加載器負(fù)責(zé)加載 Java 類的字節(jié)代碼到Java虛擬機(jī)中!下面是小編為大家搜索整理的Java類別載入器,希望大家能有所收獲,更多精彩內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

  1 Java的動(dòng)態(tài)特性

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

  是藉由java.lang.ClassLoader 里的loadClass()方法。您可以任意選用其中一種方法。

  2 隱式的動(dòng)態(tài)特性

  在執(zhí)行java文件時(shí),只有單獨(dú)的變量聲明是不會(huì)載入相應(yīng)的類的,只有在用new生成實(shí)例時(shí)才載入

  如示例所示:

  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運(yùn)行,察看輸出結(jié)果?梢钥吹絁VM只載入了A,而沒(méi)有載入B.

  另外,類的載入只在執(zhí)行到new一個(gè)類時(shí),才載入,如果沒(méi)有執(zhí)行到new語(yǔ)句,則不載入。

  如://類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 顯示的動(dòng)態(tài)特性

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

  在上一個(gè)Office示例中,進(jìn)行如下修改:

  一 加入Assembly類

  public interface Assembly

  {

  public void start();

  }

  二 讓W(xué)ord和Excel類實(shí)現(xiàn)該接口

  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類別載入器】相關(guān)文章:

Java類別的載入器04-11

Java與Java web的區(qū)別01-30

英文盤點(diǎn)服飾類別單詞03-20

中國(guó)院校類別介紹05-05

服飾類別單詞匯總12-03

淺談Java語(yǔ)言與Java 技術(shù)03-28

Java與Java web有什么不同04-16

java教程之Java編程基礎(chǔ)04-18

談Java語(yǔ)言與Java技術(shù)的介紹02-19