运行时数据区包括:虚拟机栈区,堆区,方法区,本地方法栈,程序计数器数组
虚拟机栈区 :也就是咱们常说的栈区,线程私有,存放基本类型,对象的引用和 returnAddress ,在编译期间完成分配。线程
堆区 , JAVA 堆,也称 GC 堆,全部线程共享,存放对象的实例和数组, JAVA 堆是垃圾收集器管理的主要区域。对象
方法区 :全部线程共享,存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。这个区域的内存回收目标主要是针对常量池的对象的回收和对类型的卸载。内存
程序计数器 :线程私有,每一个线程都有本身独立的程序计数器,用来指示下一条指令的地址。编译器