国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

詳解Java中類的加載順序

2019-11-26 13:16:31
字體:
來源:轉載
供稿:網友

本文介紹的是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父類靜態初始化塊子類靜態初始化塊父類非靜態初始化塊父類的構造方法子類非靜態初始化塊子類的構造方法

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辉南县| 太仓市| 兴仁县| 旺苍县| 康马县| 台东县| 开封县| 肃北| 通榆县| 泸西县| 威信县| 鄱阳县| 宁城县| 上犹县| 泸水县| 吉水县| 雅安市| 绵竹市| 柳江县| 东平县| 崇明县| 泗阳县| 克什克腾旗| 卢氏县| 察隅县| 克拉玛依市| 江口县| 阿克陶县| 阳原县| 沁源县| 临邑县| 夹江县| 寿光市| 崇仁县| 河池市| 赣榆县| 鹤山市| 安庆市| 瓮安县| 施秉县| 施秉县|