您的位置:首页 > 编程语言 > Java开发

Java中Reflection机制的初步理解(一)

2016-02-10 16:59 274 查看

ClassLoader的类加载机制

Java中程序运行过程大致是由ClassLoader将class load到CodeSegment中,关联main方法执行,其中会有其他class不断load到内存,而不是一次性加载,即为动态加载机制。

我们可以用下面这段代码来观察。

public class TestDynamicLoading {
public static void main(String [] args) {
new A();
System.out.println("AAAAAAAAAAAAAAA");
new B();

new C();
new C();

new D();
new D();
}
}
class A{}
class B{}
class C {
static {
System.out.println("CCCCCCCCCCCCCC");
}
}
class D {
{
System.out.println("DDDDDDDDDDDDDD");
}
}


在VMarguments添加-verbose:class观察类的具体加载过程,run,可以看到load A后,先打印A后再load B。而C的static语句块只会调用一次。D的dynamic语句块会打印两次,即每次new一个对象调用一次。动态语句块可视为无条件加载到class构造方法中,不常用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 反射