java虚拟机——虚拟机内存

java虚拟机的内存分为五大块  程序计数器 java虚拟机栈 本地方法栈 堆 方法区

一 :程序计数器:

              1 是一块较小的内存,可以看做当前线程所执行字节码的行号指示器。

              2 在多线程中每一个线程都应该有一个独立的程序计数器

              3 如果是一个java方法,计数器记录的是正在执行的虚拟机的字节码指令地址,native方法,则计数器值为空

              4 唯一一个java虚拟机中没有规定outofMemoryError

二:Java虚拟机栈:

                   1 线程私有的,描述的是java方法执行的内存模型

                   2 每个方法执行的时候都会创建栈帧,用于存储局部变量,操作数栈,动态链接,方法接口等

                   3 就是我们平时说的栈内存

                   4 线程请求的栈深度大于虚拟机所允许的深度,就发生stackoverflowError,如果无法申请到足够的内存内存                                outofMemoryError

三 :本地方法栈:

                    与虚拟机栈的区别及时,虚拟机栈为java方法服务,本地方法栈为native方法服务

四:堆(GC堆) 

                  1 内存中最大的一块,被所有线程所共享的一块区域,此内存唯一的目的及时存放对象实例

                  2  -Xmx   -Xms

                  3 堆内存无法扩展的时候会抛出outofmemoryError

五:方法区: 

              1 与堆一样是线程的共享区域

              2 存储被虚拟机加载的类信息,常量,静态变量

              3 当方法区无法满足内存分配的时候将抛出outofMemoryError

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值