forName()方法会进行类加载,将MyClass装在到JVM上。
静态代码块:在类加载时执行,且只执行一次。
如果你只想执行一个类的静态代码块,其它代码不执行,可以使用forName()方法
package leetcode0606.reflect;
public class ReflectTest04 {
public static void main(String[] args) {
try {
Class.forName("leetcode0606.reflect.MyClass");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class MyClass{
static{
System.out.println("MyClass的静态代码块执行了!!!");
}
}