日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java jvm 加载类的顺序_java JVM-类加载静态初始化块调用顺序

發布時間:2024/9/27 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java jvm 加载类的顺序_java JVM-类加载静态初始化块调用顺序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試類加載的全過程

public class Have {

static {

System.out.println("加載Have");//先加載Have再調用main方法

}

public static void main(String[] args) throws Exception {

System.out.println("main方法"); //先調main方法

A a=new A(); //先初始化父類,再初始化子類

System.out.println(A.width);

A a2=new A(); //第二次只會調用構造器,不會調用靜態方法,類的加載和初始化只有一次

System.out.println(A.common); //調用類里的常量時,并不會初始化該類,常量被放在常量池里

//Class.forName("cn.sxt.in.A"); //反射調用類,也會加載靜態方法

//A[] a=new A[10]; //創建類的數組,不會初始化類

System.out.println(B.common); //子類調用父類的常量,不會初始化本身和父類

System.out.println(B.width); //子類調用父類非常量,則只會初始化父類

}

}

class A extends A_father{

public static int width=100;

public static final int common=10;

//創建對象時,會首先運行賦值動作和static塊內的內容

static {

System.out.println("靜態初始化類");

width=300;

}

public A(){

System.out.println("AAA");

}

}

class A_father{

static {

System.out.println("靜態初始化A的父類");

}

}

class B extends A{

static {

System.out.println("靜態初始化B");

}

}

總結

以上是生活随笔為你收集整理的java jvm 加载类的顺序_java JVM-类加载静态初始化块调用顺序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。