Java内存区域略解
概览
分述
程序计数器
用于记录该线程的执行位置,便于跳转或者线程中断后的恢复
方法区
Java虚拟机规范中把
原本用于存储常量,静态变量和类的元信息,但java1.7将字符串常量移到了堆中,java8又将剩下的东西移到了元空间中
注意 由于HotSpot早期的垃圾收集策略,方法区有时候也被称做永久代
虚拟机栈
如果将Java的内存笼统的分为堆或者栈的话,栈就是指这里的虚拟机栈了
本地方法栈
与虚拟机栈有着相同的功能,但对象是本地方法
堆
用于存储对象实例,几乎所有的数组和对象都分布在堆中.
在堆中分配对象时,为了增强效率,会采用TLAB方法,给每一个线程分配一个线程私有的缓冲区,对象就先在缓冲区内部分配空间