1,、虛擬機(jī)在首次加載Java類時(shí),會(huì)對(duì)靜態(tài)初始化塊,、靜態(tài)成員變量,、靜態(tài)方法進(jìn)行一次初始化 public class Parent { public static int t = parentStaticMethod2(); { System.out.println("父類非靜態(tài)初始化塊"); } static { System.out.println("父類靜態(tài)初始化塊"); } public Parent() { System.out.println("父類的構(gòu)造方法"); } public static int parentStaticMethod() { System.out.println("父類類的靜態(tài)方法"); return 10; } public static int parentStaticMethod2() { System.out.println("父類的靜態(tài)方法2"); return 9; } @Override protected void finalize() throws Throwable { // TODO Auto-generated method stub super.finalize(); System.out.println("銷毀父類"); } } public class Child extends Parent { { System.out.println("子類非靜態(tài)初始化塊"); } static { System.out.println("子類靜態(tài)初始化塊"); } public Child() { System.out.println("子類的構(gòu)造方法"); } public static int childStaticMethod() { System.out.println("子類的靜態(tài)方法"); return 1000; } @Override protected void finalize() throws Throwable { // TODO Auto-generated method stub super.finalize(); System.out.println("銷毀子類"); } } public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Parent.parentStaticMethod(); // Child child = new Child(); } } 輸出 父類的靜態(tài)方法2 父類靜態(tài)初始化塊 父類類的靜態(tài)方法 類中static 方法在第一次調(diào)用時(shí)加載,類中static成員按在類中出現(xiàn)的順序加載,。當(dāng)調(diào)用靜態(tài)方法2時(shí)輸出 父類的靜態(tài)方法2 父類靜態(tài)初始化塊 父類的靜態(tài)方法2 注釋掉Parent.parentStaticMethod(); 去掉注釋Child child = new Child();
|
|
來(lái)自: 觀審美2 > 《.·技術(shù)》