JVM内存分布 - 图1
    栈:主要以栈帧为单位,用于存放 执行的方法数据,它的结构是:先进后出的结构
    方法数据,方法中定义的变量数据,方法的形参数据,都在这片区域中

    堆:主要用于存放通过new关键字,动态产生的Java对象,GC回收,就是回收堆中的数据。

    方法区(JDK1.7之前,存放在JVM中),JDK1.8之后叫元空间,存储在物理内存。主要用于存放:
    类的类代码,方法的方法代码,以及代码中的常量数据

    PC寄存器,也叫做:程序计数器。它主要记录代码的执行顺序

    本地方法栈:主要用于存储:跟计算机OS相关的所有的方法

    其中:堆,方法区是属于线程共享的区域,其他都是线程独享的区域