JVM_01_Java内存区域

在这里插入图片描述

线程私有

  • 程序计术器(内存空间较小):

    存储内容:当前线程所执行的字节码的行号指令器,用来取下一条要执行的字节码指令。线程执行java方法,计数器记录正在执行的虚拟机字节码;本地方法则为空。
    注:不会发生OutOfMemoryError

  • 虚拟机栈(线程的内存模型):

    在这里插入图片描述

    存储内容:如图所示,特别说明,局部变量表存储的编译可知的Java基本类型(int、float等)、对象引用(reference)、returnAddress类型(指向一条字码指令的地址);
    reference的特别说明:指向对象的引用,如图所示,目前有两种方式访问,一个是句柄池,一个是直接指针
    异常:StackOverflowError(线程请求的栈的深度大于虚拟机所允许深度);OutOfMemoryError(栈动态扩展时没有申请到足够的内存)

  • 本地方法栈:与虚拟机栈类似,区别是虚拟机栈为java方法服务,本地方法为非java方法服务

线程共享

  • Java堆:
    存储内容:对象实例及数组
    异常:OutOfMemoryError(堆没有完成实例分配并且堆不能扩展时)
    :java堆的实现可以时固定大小,也可以是可扩展(参数-Xmx和-Xms)
  • 方法区:
    在这里插入图片描述
    存储内容:已经被虚拟机加载的类型信息、常量、静态变量、即时编译后的代码缓存等
    异常:OutOfMemoryError(方法区无法满足新的内存分配需求时)【运行时常量区同类】
    :此区内存回收的主要目的时针对常量池加和对类型的卸载

直接内存

存储内容:非虚拟机定义的内存,
异常:OutOfMemoryError(直接内存+java虚拟机运行时内存 > 物理内存)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值