类加载

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

yangpeoeisdfsf

2019-08-13

老师在02:35出提到:
classloader通过loadClass()把.class字节码文件加载到内存中,并将这些静态数据转换成运行时数据区中方法区的类型数据,在运行时,数据区堆中生成一个代表这个类的java.xx.class对象,作为方法区内数据的访问入口。
这里我有几个问题请教老师,还望老师解答。

  1. 这里“并将这些静态数据转换成运行时数据区中方法区的类型数据”如何理解,这些静态数据值得是类中的静态数据吗?这里的运行时数据区中方法区的类型数据又指的是什么数据?老师这里可以举一个例子吗?麻烦了!
  2. “在运行时,数据区堆中生成一个代表这个类的java.xx.class对象,作为方法区内数据的访问入口。”这里我没有听清楚是java.什么类,所以用xx表示,老师能不能打字说明一下呢?
写回答

1回答

翔仔

2019-08-13

同学好,

1.

不是指的静态数据哈,指的是类型信息,大致包括:

(1).类的全限定名(包名+类名)

(2)。接口、枚举or抽象类

(3)。访问修饰符(public private)

(4)。超类的全限定名

(5)。字段信息

(6)。方法信息

等等

这些信息会被存储在class文件并通过classloader加载到内存里,存储到方法区中

2.

java.lang.class "在运行时数据区堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。"


0
1
yangpeoeisdfsf
非常感谢!
2019-08-14
共1条回复

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

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

8427 学习 · 1870 问题

查看课程