JVM Chapter01 Runtime Data Area

JVM 组件

  • Runtime Data Area 运行时数据区
  • ClassLoader 类加载器,负责加载class文件
  • Execution Engine 执行引擎,负责与操作系统交互
  • Native Interface 负责调用本地接口的

Runtime Data Area

线程共享的数据区

  • 1 方法区:存储虚拟机加载的类信息、常量、静态变量等
  • 2 堆 :垃圾收集器管理的主要区域,GC堆

线程隔离数据区

  • 3 虚拟机栈:栈帧-存储局部变量、操作数栈、动态链接等
  • 4 本地方法栈:虚拟机使用到的native方法
  • 5 程序计数器:存放对象实例

例子:HotSpot 虚拟机对象

  • 以HotSpot为例,介绍对象创建的两种分配方式
    • 1 指针碰撞 :前提 java堆内存规整,空闲内存和已使用内存由指针分割,分配时向空闲区移动。
      java堆是否规整,由垃圾收集器是否有压缩整理功能(Serial、ParNew,带有Compact过程的收集器)
    • 2 空闲列表: 维护空闲内存列表,在创建对象是从空闲列表中选取(CMS,使用Mark-Sweep算法的收集器)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值