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的方法。
程序计数器:指针