|
常用鏈接
留言簿(3)
隨筆檔案(28)
文章檔案(1)
我最愛的網站
搜索
最新評論

閱讀排行榜
評論排行榜
Powered by: 博客園
模板提供:滬江博客
|
|
|
|
|
發新文章 |
|
|
java代碼:?
|
public
interface Assembly{ ? ? publicvoid start(); }
publicclass Word implements Assembly{ ? ? static{ ? ? ? ? System.out.println("Word static initialization!"); ? ? }? ?
? ? public? void start(){ ? ? ? ? System.out.prinlnt("Word starts"); ? ? } }
publicclass Office{ ? ? publicstaticvoid main(String args[])throwsException{ ? ? ? ? Office off = new Office(); ? ? ? ? System.out.println("類別準備載入"); ? ? ? ? Class c = Class.forName(arg[0],true,Office.class.getClassLoader()); ? ? ? ? System.out.println("類別準備實例化"); ? ? ? ? Object o = c.newInstance(); ? ? ? ? Object o2= c.newInstance(); ? ?} }
當forName方法中的第二參數是true時,顯示的是: 類別準備載入 Word static initialization! 類別準備實例化 當forName方法中的第二參數是false時,顯示的是: 類別準備載入 類別準備實例化 Word static initialization!
當true的時候是主動使用,當fasle的時候是被動使用. 在P162說:java虛擬機在首次使用類型時初始化它們。只有6種活動被認為是主動使用:創建類的新實例,調用類中聲明的靜態方法,操作類或者接口中聲明的非常量靜態字段,調用Java API中特定的反射方法,初始化一個類的子類,以及指定一個類作為Java虛擬機啟動時的初始化類。
把 Class c = Class.forName(arg[0],true,Office.class.getClassLoader()); 中的 Office,改成Word,不管forName的第二參數是否是fasle與true,都是 類別準備載入 Word static initialization! 類別準備實例化
|
|
|