Java 内存结构

1. 程序计数器

线程私有,是一个记录着当前线程所执行的字节码的行号指示器

 

2. Java虚拟机栈

线程私有,每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。

 

3. 本地方法栈

与虚拟机栈类似,只不过是执行的是非Java代码

 

4. 堆

Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。

堆里还包含一个常量池,保存字面量和符号引用量。

 

5. 方法区

线程共享,保存代码数据,编译好的.class文件,常量,静态变量等

1.8之前的实现叫永久代

1.8之后的实现在直接内存中,叫元空间

 

 

posted @ 2021-02-24 12:14  Kinghao0319  阅读(32)  评论(0编辑  收藏  举报