19新版教育培训风格演示站
标题:
Class.forName(String,false,loader)初始化设置为false,结果还是初始化执行了静态...
[打印本页]
作者:
小燕秋
时间:
2019-1-10 17:08
标题:
Class.forName(String,false,loader)初始化设置为false,结果还是初始化执行了静态...
都说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();
}
}
}
复制代码
作者:
瓦力老师
时间:
2019-1-10 17:09
可能因为你这个StringL类 包括了入口main函数,说明一开始就已经被加载了。
所以就执行了静态代码块
欢迎光临 19新版教育培训风格演示站 (http://47.100.112.22/demo/train/)
Powered by Discuz! X3.5