关于类的装载过程,第一步说的“生成Class对象”的理解

来源:6-7 loadClass和forName的区别

慕尼黑7546459

2019-03-08

老师,第一步通过ClassLoad加载class文件字节码,生成Class对象,这里的生成Class对象如何理解啊?因为第二步才会去校验,不是校验之后生成吗

写回答

1回答

翔仔

2019-03-10

同学好,这里涉及到一个鸡生蛋,蛋生鸡的过程,必须得打破。

加载阶段需要完成的事情有:

  1)通过一个类的全限定名来获取定义此类的二进制字节流。

  2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。

  3)在java堆中生成一个代表这个类的Class对象,作为访问方法区中这些数据的入口。

加载的时候第三步生成的Class对象的作用是作为入口,而真正的对象是经过加载、连接后才能初始化的,Class对象是一个特殊的对象,不同于普通对象,因此可以在加载的时候生成。

0
1
慕尼黑7546459
理解了,谢谢老师
2019-03-13
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程