JavaEE初始化时静态代码块加载问题

1.使用java.exe命令运行某个类的时
java.exe Person
2.创建一个类的对象时
Person p=new Person();
3.访问类中的静态成员变量(赋值/获取值)
System.out.println(Person.className);
4.访问了类中的静态成员方法
Person.method();
5.创建类的子类对象的时候
Student s=new Student();
6.使用反射方式来强制创建某个类或接口对应的java.lang.Class对象
System.out.println(Person.class);//(不加载静态代码块)

第六种方法在加载时没有完成反射过程中类的加载的三步(类的加载,连接,初始化),所以不能执行类中的静态代码块,其余方法均可以实现静态代码块的执行

原文地址:https://www.cnblogs.com/outsidersblogs/p/6942425.html