Java 程序运行时的内存结构划分:方法区、栈内存、堆内存、本地方法栈和寄存器
方法区存放装载的类数据信息包括:
1.基本信息:
(1)每个类的全限定名
(2)每个类的直接超类的全限定名(可约束类型转换)
(3)该类是类还是接口
(4)该类型的访问修饰符
(5)直接超接口的全限定名的有序列表
2.每个已装载类的详细信息:
(1)运行时常量池:存放该类型所用的一切常量(直接常量和对其它类型、字段、方法的符号引用),它们以数组形式通过索引被访问,是外部调用与类联系及类型对象化的桥梁。它是类文件(字节码)常量池的运行时表示。(还有一种静态常量池,在字节码文件中)。
(2)字段信息:类中声明的每一个字段的信息(名,类型,修饰符)。
(3)方法信息:类中声明的每一个方法的信息(名,返回类型,参数类型,修饰符,方法的字节码和异常表)。
(4)静态变量
(5)到类classloader的引用:即到该类的类装载器的引用。
(6)到类class 的引用:虚拟机为每一个被装载的类型创建一个class 实例,用来代表这个被装载的类。
这些信息都是很所都是创建对象,调用方法时堆栈的参考信息
|