程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 詳解Java中類的加載順序

詳解Java中類的加載順序

編輯:關於JAVA

詳解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
父類靜態初始化塊
子類靜態初始化塊
父類非靜態初始化塊
父類的結構辦法
子類非靜態初始化塊
子類的結構辦法

總結

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved