JVM学习之内存分配和垃圾回收

时间:2023-01-02 21:35:15

阅读书籍:Java虚拟机精讲(仅个人阅读后总结)

根据受访权限可分为:线程共享内存区和线程私有区

线程共享区:

  1、java堆区:储存对象实例;

  2、方法区:储存 运行时常量池、字段和数据、构造函数和普通方法的字节码内容以及类、实例、接口初始化需要用到的特殊方法等数据;

  3、运行时常量池;

线程私有内存区:

  1、PC寄存器:如果当前线程所执行的方法是一个java方法,那么PC寄存器就会存储正在执行的字节码指令地址,反之如果是native方法,这是PC寄存器的值为空(undefined);

  2、java栈:储存各类原始数据类型、对象引用以及returnAddress

  3、本地方法栈:用以支持本地native方法