jvm内存模型

参考:http://blog.csdn.net/jiangwei0910410003/article/details/40616223

类加载器子系统

内存空间:方法区,堆,栈,本地方法栈

垃圾收集器:

指令计数器以及其他隐含寄存器:

执行引擎

本地接口方法

本地方法库

一。程序计数器:较小块的内存空间,可以看做程序行号指示器。通过它区下一条需要执行的字节码指令。

分支,跳转,循环,异常处理,线程恢复等基础功能都需要这个计数器来完成。是线程私有的,每个线程都有一个程序计数器。

二。java栈(虚拟机栈):java栈就是java方法执行的内存模型。每个方法执行都会创建一个栈帧。用来存储局部变量表,操作数栈,

动态链接,方法出口等信息。每个方法从调用直至完成的过程,就对应一个栈帧在虚拟机栈中入栈到出栈的过程。(也是线程私有的)

异常可能性:栈深度大于允许的(StackOverFlowError),栈帧扩展无法申请到足够内存(OutOfMemmoryError)

局部变量表

操作数栈

方法返回地址(运到方法返回字节码指令,执行方法过程中运到了异常)

附加信息

三。本地方法栈(执行本地方法,线程私有。可能抛出两种异常)

四。java堆:在虚拟机启动时创建。存放对象实例。java堆是垃圾回收器管理的主要对象

堆是线程共享的。抛出outofmemmoryerror

五。方法区用于存储已被虚拟机加载的类信息,常量,静态常量。

和堆一样,是线程共享的。

运行时常量池:是方法区的一部分,

六。异常

-XX:PermSize=10M -XX:MaxPermSize=10M -Xss=128k  -Xms 10M -Xmx 10M

堆溢出:

栈溢出

常量池溢出

方法区溢出



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值