类加载
来源:6-7 loadClass和forName的区别
yangpeoeisdfsf
2019-08-13
老师在02:35出提到:
classloader通过loadClass()把.class字节码文件加载到内存中,并将这些静态数据转换成运行时数据区中方法区的类型数据,在运行时,数据区堆中生成一个代表这个类的java.xx.class对象,作为方法区内数据的访问入口。
这里我有几个问题请教老师,还望老师解答。
- 这里“并将这些静态数据转换成运行时数据区中方法区的类型数据”如何理解,这些静态数据值得是类中的静态数据吗?这里的运行时数据区中方法区的类型数据又指的是什么数据?老师这里可以举一个例子吗?麻烦了!
- “在运行时,数据区堆中生成一个代表这个类的java.xx.class对象,作为方法区内数据的访问入口。”这里我没有听清楚是java.什么类,所以用xx表示,老师能不能打字说明一下呢?
写回答
1回答
-
同学好,
1.
不是指的静态数据哈,指的是类型信息,大致包括:
(1).类的全限定名(包名+类名)
(2)。接口、枚举or抽象类
(3)。访问修饰符(public private)
(4)。超类的全限定名
(5)。字段信息
(6)。方法信息
等等
这些信息会被存储在class文件并通过classloader加载到内存里,存储到方法区中
2.
java.lang.class "在运行时数据区堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。"
012019-08-14
相似问题