jvm

jdk>jre>Java虚拟机

所有线程所共享的区域---->数据是线程非安全

     java源码文件------------------->.class文件----------------------------->

运行时数据区的目的:将.class文件中的内容搬到jvm中运行,将.class文件中不同类别的数据打散到jvm的不同区域。

(Heap)堆:存放对象以及普通成员变量,数组等。

(Method Area)方法区:存放类的信息(比如创建的时间,元数据信息),静态变量,常量,即时编译器编译后的代码等等,

                                     运行时常量池(Run-Time Constant Pool)存在于方法区,保存一些字面量和符号引用,方法区在java1.8之前叫做永久代(Perm Space),1.8开始叫做元空间(MetaSpace)。

(Java Virturl machine stack)虚拟机栈:方法的执行由线程来执行,所以虚拟机栈存储方法以及临时变量。线程执行方法的过程就在虚拟机栈。

(Native stack)本地方法栈:本地方法如C的方法。

程序计数器:指针

原文地址:https://www.cnblogs.com/xp1234/p/11912495.html