关于类的装载过程,第一步说的“生成Class对象”的理解
来源:6-7 loadClass和forName的区别
慕尼黑7546459
2019-03-08
老师,第一步通过ClassLoad加载class文件字节码,生成Class对象,这里的生成Class对象如何理解啊?因为第二步才会去校验,不是校验之后生成吗
写回答
1回答
-
同学好,这里涉及到一个鸡生蛋,蛋生鸡的过程,必须得打破。
加载阶段需要完成的事情有:
1)通过一个类的全限定名来获取定义此类的二进制字节流。
2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。
3)在java堆中生成一个代表这个类的Class对象,作为访问方法区中这些数据的入口。
加载的时候第三步生成的Class对象的作用是作为入口,而真正的对象是经过加载、连接后才能初始化的,Class对象是一个特殊的对象,不同于普通对象,因此可以在加载的时候生成。
012019-03-13
相似问题