随谈Java - (二)内存区域

一、JVM内存区域规范

随谈Java - (二)内存区域_第1张图片
1.1 各区域作用

Java方法栈:以栈的形式存放栈帧,每一个Java方法调用的开始和结束,都伴随着栈帧的入栈和出栈;

本地方法栈:与Java方法栈类似,对应native方法;

:存放对象实例信息;

方法区:主要存放类相关信息;

程序计数器:记录当前线程代码执行的位置,线程上下文切换时用到;

注:堆、方法区是线程共享的区域

1.2 HotSpot各代对象

Eden/S1/S2:复制算法应用,存放年轻代对象

Old:标记-清除/标记-整理算法应用,存放老年代对象以及做担保分配

二、new关键字生成对象的简化过程

1.由类加载器将类的二进制字节流加载至内存,并转化为相应的数据结构,存放在方法区

2.执行()方法进行类初始化

注:1、2步前会先进行类加载检查,如果之前已经加载过了则不再加载

3.内给对象实例分配内存

4.执行()方法进行实例初始化

你可能感兴趣的:(随谈Java - (二)内存区域)