java 類動態載入 / static 語句塊載入一次
阿新 • • 發佈:2019-01-24
jaav 類動態載入,static 語句塊載入一次
package test.java; /** * * @author lj * @printout * [Loaded test.java.A from file:/D:/Users/workspaceReal1/ptservice/build/classes/] ---------------------- [Loaded test.java.B from file:/D:/Users/workspaceReal1/ptservice/build/classes/] [Loaded test.java.C from file:/D:/Users/workspaceReal1/ptservice/build/classes/] static of CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC [Loaded test.java.D from file:/D:/Users/workspaceReal1/ptservice/build/classes/] dynamic of DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD dynamic of DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD */ public class TestDynamicLoading { public static void main(String[] args) { new A();//詳細輸出 -verbose:class,這個是動態載入。先載入A,再列印,第三句才載入B類。即classLoader 是用到的時候才動態載入類 System.out.println("----------------------"); new B(); new C(); new C(); new D(1); new D(2); } } class A{ } class B{ } class C{ static { //靜態語句塊,在載入類的時候載入,並且只被載入一次 System.out.println("static of CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"); } } class D{ public D(int i){} { //動態語句塊,在每次new 物件的時候呼叫,用的不多。這個與構造方法區別不大,僅當構造方法有引數時,才發現,這個無條件加在每個構造方法前面 System.out.println("dynamic of DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"); } }