都说
Class.forName(String name, boolean initialize,ClassLoader loader)方法可以选择在加载类的时候是否要对类进行初始化
可是当我设置initialize为false的时候,结果还是执行了类里面的静态代码块,是为什么呢?
public class StringL {
static {
System.out.println("执行了静待代码块");
}
public static void main(String[] args){
ClassLoader loader = ClassLoader.getSystemClassLoader();
try {
Class sample3=Class.forName("StringL",false,loader);
}catch (ClassNotFoundException e){
e.printStackTrace();
}
}
}
可能因为你这个StringL类 包括了入口main函数,说明一开始就已经被加载了。
所以就执行了静态代码块