什么时候会发生类初始化
package com.test5;
public class test6 {
static {
System.out.println("Main类被加载");
}
public static void main(String[] args) throws ClassNotFoundException {
// 1.主动引用
//Son son = new Son();
/**
* 运行结果 Main类被加载 父类被加载了 子类被加载了
*/
//反射也会产生主动调用
//Class.forName("com.test5.Son");
/**
* 运行结果 Main类被加载 父类被加载了 子类被加载了
*/
//不会产生类的引用方法
//System.out.println(Son.b);
/**
* 运行结果 Main类被加载 父类被加载了 2
*/
//Son[] array=new Son[5];
/**
* 运行结果 Main类被加载
*/
System.out.println(Son.M);
/**
* 运行结果 Main类被加载 1
*/
}
}
class Father {
static int b = 2;
static {
System.out.println("父类被加载了");
}
}
class Son extends Father {
static {
System.out.println("子类被加载了");
m = 300;
}
static int m = 100;
static final int M = 1;
}