一 类的初始化步骤
二 编译常量
当调用类的常量时,类不会被初始化,静态代码块不会被执行。
当引用类的变量不是常量时,需要初始化才能获取值,这时候类会被初始化,静态代码块会执行
三 类的初始化
四 类的初始化时机
调用ClassLoader类的loadClass方法例子如下:
package com.jvm.test;
class C{
static {
System.out.println("Class C");
}
}
public class Test1 {
public static void main(String[] args) throws Exception {
//获得系统类加载器
ClassLoader loder = ClassLoader.getSystemClassLoader();
Class<?> clazz = loder.loadClass("com.jvm.test.C");
System.out.println("-----------------------------");
//利用放射获取类
Class<?> clazz2 = Class.forName("com.jvm.test.C");
}
}
打印结果:
-----------------------------
Class C