首页 > 编程语言 > 详细

【Java虚拟机】内存分配和GC机制

时间:2019-06-21 00:55:53      阅读:182      评论:0      收藏:0      [点我收藏+]

JAVA内存模型

技术分享图片

方法区:  各线程共享区域,存储被类加载的类信息,常量,静态变量,运行时常量池

堆(GC):JVM托管的内存中最大的一块。所有线程共享,虚拟机启动时创建;唯一目的存放对象实例;所有对象实例和数组都要在对上分配;

                  分代GC; 新生代和老年代:Eden,From Survior,To Survior

虚拟机栈:线程私有,每个方法执行时会同步创建一个栈帧,存储存储局部变量表(基础数据类型+引用类型)、操作数栈,动态链接,方法出口;每个方法从调用直到执行完成,都对应一个栈帧在虚拟机栈从入栈到出栈过程。

                线程请求栈深度大于JVM允许的深度,StackOverflowError:    虚拟机扩展到无法申请新内存, OutOfMemoryError

本地方法栈:为虚拟机使用的Native方法服务

程序计数器:

对象创建过程:

JVM遇到new命令,

1)检查指令参数是否可在常量池定位一个类的符号引用,检查该符号应用代表的类是否已加载,解析和初始化过;如果没有,执行类的加载;

2)为新生对象分配内存,从堆中分配内存。

 

【Java虚拟机】内存分配和GC机制

原文:https://www.cnblogs.com/clarino/p/11062278.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!