詳解Java中類的加載順序。本站提示廣大學習愛好者:(詳解Java中類的加載順序)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解Java中類的加載順序正文
本文引見的是Java中類的加載順序,上面來看看詳細的引見:
1、虛擬機在初次加載Java類時,會對靜態初始化塊、靜態成員變量、靜態辦法停止一次初始化
2、只要在調用new辦法時才會創立類的實例
3、類實例創立進程:依照父子承繼關系停止初始化,首先執行父類的初始化塊局部,然後是父類的結構辦法;再執行本類承繼的子類的初始化塊,最後是子類的結構辦法
4、類實例銷毀時分,首先銷毀子類局部,再銷毀父類局部
示例
public class Parent { public static int t = parentStaticMethod2(); { System.out.println("父類非靜態初始化塊"); } static { System.out.println("父類靜態初始化塊"); } public Parent() { System.out.println("父類的結構辦法"); } public static int parentStaticMethod() { System.out.println("父類類的靜態辦法"); return 10; } public static int parentStaticMethod2() { System.out.println("父類的靜態辦法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("子類非靜態初始化塊"); } static { System.out.println("子類靜態初始化塊"); } public Child() { System.out.println("子類的結構辦法"); } public static int childStaticMethod() { System.out.println("子類的靜態辦法"); 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(); } }
輸入
父類的靜態辦法2 父類靜態初始化塊 父類類的靜態辦法
類中static 辦法在第一次調用時加載,類中static成員按在類中呈現的順序加載。當調用靜態辦法2時輸入
父類的靜態辦法2 父類靜態初始化塊 父類的靜態辦法2
正文掉Parent.parentStaticMethod();
去掉正文Child child = new Child();
父類的靜態辦法2 父類靜態初始化塊 子類靜態初始化塊 父類非靜態初始化塊 父類的結構辦法 子類非靜態初始化塊 子類的結構辦法
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或許任務能帶來一定的協助,假如有疑問大家可以留言交流。