JVM

klass模型

Java的每个类,在JVM中,都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息……

看下klass模型类的继承结构 

从继承关系上也能看出来,类的元信息是存储在元空间的

普通的Java类在JVM中对应的是instanceKlass类的实例,再来说下它的三个子类

    1、InstanceMirrorKlass:用于表示java.lang.Class,Java代码中获取到的Class对象,实际上就是这个C++类的实例,存储在堆          区,学名镜像类;

    2、InstanceRefKlass:用于表示java/lang/ref/Reference类的子类

    3、InstanceClassLoaderKlass:用于遍历某个加载器加载的类

Java中的数组不是静态数据类型(静态数据类型就是JVM内置的,八种基本数据类型),是动态数据类型,即是运行期生成的,Java数组的元信息用ArrayKlass的子类来表示:

    1、TypeArrayKlass:用于表示基本类型的数组

    2、ObjArrayKlass:用于表示引用类型的数组

运行时数据区

标记清除算法

复制算法

标记整理算法

你可能感兴趣的:(JVM)