jvm内存组成+GC

1.jvm内存组成

   堆:除基本类型之外所有new的对象存储在堆。

   栈:存储一些局部变量 +临时存储

  本地方法栈:只要支持其他语言的方法,存储native方法的状态

 方法区:存放类信息,静态信息,final常量信息,属性,方法等。主要存放于持久代。

程序计数器:pc 



2.回收

堆是由新生代和旧生代组成,new对象都是在新生代中分配空间。

新生代由eden ,survivor组成。survivor(fromSpace+toSpace)

新生代中的数据存活时间较短,旧生代存活时间相对长。



2.1新生代GC:

     新生代存活时间较短,直接用copying算法回收。

    copying算法:扫描新生代存活对象,将存活对象复制到一块新的未使用空间。

   新生代采用空闲指针控制触发GC机制,指针保持最后一个对象的分配空间在新生代中。但new是无空间,则触发gc回收。新生代空间不够时,空间分配会由eden-->survivor--   ->旧生代

   新生代GC分类:串行GC,并行GC,并行回收GC


2.2旧生代GC:

    旧生代中的对象存活时间较长,用mark算法回收。

   mark算法:扫描mark存活的对象,回收未标记的对象回收,回收后对空余的空间合并,或者标记便于下次使用,避免碎片影响效率。

   旧生代GC分类:串行GC,并行GC,并发GC



串行GC,单线程,等待时间长,适用单Cpu,新生代较小

并行|并发GC,多线程,速度快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值