> 文章列表 > JVM内存区域划分

JVM内存区域划分

JVM内存区域划分

Java内存区域划分

  • 1. 线程共享
  • 2. 线程私有
    • 2.1 程序计数器
    • 2.2 虚拟机栈
    • 2.3 本地方法栈

1. 线程共享

1.1 堆

GC的主要区域,存放对象实例,几乎所有的对象都在这里分配空间。

1.2 方法区

又称为“非堆”,其中包含字节码、静态变量、常量、类信息。

2. 线程私有

2.1 程序计数器

字节码执行到第几行了,记录当前进度。

2.2 虚拟机栈

存放的是栈帧,每个方法被调用的时候都会创建一个栈帧。栈帧包含四个部分,局部变量表、操作数栈、动态链接和返回地址。对象引用和基本类型都是在局部变量表中保存的。其中对象的引用是直接指向堆中的对象的。

2.3 本地方法栈

native服务,并不限制语言。

参考资料

  1. Java面试必知必会.Java虚拟机.01.JVM内存区域
  2. 知识点:JVM内存区域划分