JVM内存模型,垃圾收集算法,垃圾收集器

一、JVM内存模型

  1. 程序计数器(Program Count Register)
  2. 本地方法栈(Native Stack)
  3. 方法区(Methon Area)
  4. 栈(Stack),存放基本类型数据,进行运算操作,其上数据是可以共享的
  5. 堆(Heap),存放引用类型数据

新生代(Young Generation):分为 Eden 与 2个Survivor Space(幸存区),回收的对象内存比较多,用Copying(复制)算法进行垃圾回收。

由堆内存分配

老年代(Old Generation):进行一次回收很慢,回收的对象比较少,用Mark-Compact(标记-整理)算法回收。由堆内存分配

永久代(Permanent Generation): 存放的是类,方法,常量信息。由方法区内存分配


二、垃圾收集算法

1.Mark-Sweep(标记-清除)算法

   先标记,在清除,会产生垃圾碎片,当要分配大对象内存是,没有可以分配的内存,会导致垃圾回收。

2.Copying(复制)算法

   为了解决标记-清除算法产生的内存碎片问题,而提出的算法,始终存在一块空闲的内存,当发生垃圾回收是,把存活对象复制到空闲内存,把其他内存清除。

3.Mark-Compact(标记-整理)算法

   为了解决复制算法,内存利用率不高问题,而提出的算法,把存活对象向一端移动,把存活对象区域边界的内存清除。

4.Generational Collection(分代收集)算法

   这是目前大部分JVM采用的垃圾回收算法,根据不同的代使用不同的算法。新生代用Copying(复制)算法,老年代Mark-Compact(标记-整理)算法。


三、垃圾收集器

1.串行

2.并行

3.并发



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值