首页 > 技术文章 > JVM知识点

zeevy 2020-03-27 17:13 原文

程序计数器(线程私有):当前线程所执行的字节码的行号指示器,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储

虚拟机栈(线程私有):虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务

本地方法栈(线程私有):本地方法栈则为虚拟机使用到的 Native 方法服务

堆(线程共享):Java 虚拟机所管理的内存中最大的一块,也是垃圾回收器管理的主要区域。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存

方法区(线程共享):被当做堆的一个逻辑部分,它用以存储被虚拟机加载的类信息,常量,静态变量。jdk1.8之后方法区被取代了,取而代之的是元空间

(被static声明的成员变量保存在方法区,属于线程共享区域。)

运行时的常量池在jdk1.7之前放在方法区中,在jdk1.7之后在堆中开辟了一块区域存放

 

推荐阅读