package jvm;
public class Test3 {
static int count=20;
{//初始化塊
count=12;
System.out.println("初始化塊"+count);
}
static {
count=13;
System.out.println("靜態塊"+count);
}
public Test3() {
System.out.println("創建對象"+count);
}
public Test3(String name) {
System.out.println(name);
}
public static void main(String[] args) {
System.out.println("根據類名獲取"+Test3.count);
Test3 test3 = new Test3();
System.out.println("根據生成對象獲取"+test3.count);
}
}
靜態塊13
根據類名獲取13
初始化塊12
創建對象12
根據生成對象獲取12
執行順序 1 靜態塊 2初始化塊
註釋創建對象的代碼
public static void main(String[] args) {
System.out.println("根據類名獲取"+Test3.count);
}
靜態塊13
根據類名獲取13
創建多次對象
public static void main(String[] args) {
System.out.println("根據類名獲取"+Test3.count);
Test3 test3 = new Test3();
System.out.println("根據生成對象獲取"+test3.count);
System.out.println("=============");
Test3 test4= new Test3();
System.out.println("根據生成對象獲取"+test4.count);
}
靜態塊13
根據類名獲取13
初始化塊12
創建對象12
根據生成對象獲取12
=============
初始化塊12
創建對象12
根據生成對象獲取12
初始化只有在創建對象的時候纔會執行,不創建時不會執行,並且每次創建的對象的時候都會執行