文档章节

GC算法总结

小石头哥
 小石头哥
发布于 2017/04/08 23:07
字数 515
阅读 8
收藏 0

引用计数法:引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能再被使用。

引用计数法的问题:1.引用和去引用伴随加法和减法,影响性能。2.很难处理循环引用

标记-清除:标记-清除算法是现代垃圾回收算法的思想基础。标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。一种可行的实现是,在标记阶段,首先通过根节点,标记所有从根节点开始的可达对象。因此,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。

标记压缩:标记-压缩算法适合用于存活对象较多的场合,如老年代。它在标记-清除算法的基础上做了一些优化。和标记-清除算法一样,标记-压缩算法也首先需要从根节点开始,对所有可达对象做一次标记。但之后,它并不简单的清理未标记的对象,而是将所有的存活对象压缩到内存的一端。之后,清理边界外所有的空间。

复制算法:

1.与标记-清除算法相比,复制算法是一种相对高效的回收方法

2.不适用于存活对象较多的场合 如老年代

3.将原有的内存空间分为两块,每次只使用其中一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未使用的内存块中,之后,清除正在使用的内存块中的所有对象,交换两个内存的角色,完成垃圾回收

 

© 著作权归作者所有

共有 人打赏支持
小石头哥

小石头哥

粉丝 8
博文 18
码字总数 14404
作品 0
广州
后端工程师
私信 提问
成为Java GC专家系列

成为Java GC专家(1):深入浅出Java垃圾回收机制 成为Java GC专家(2):如何监控Java垃圾回收机制 成为Java GC专家(3):如何优化Java垃圾回收机制 成为Java GC专家(4):Apache的MaxClients参数...

HenrySun
2016/06/21
66
0
GC Collectors(copy)

作者: 一字马胡 最近在学习GC相关内容,总觉得写过GC相关的文章,然后去翻了一下写过的文章集,果然发现了一篇自己都觉得不可思议的文章:浅谈JVM中的垃圾回收,这篇文章信息量较大,但是止...

疼蛋之丸
2018/10/28
0
0
使用CMS垃圾收集器产生的问题和解决方案

关于CMS垃圾收集器,在JVM GC参数以及GC算法的应用中已经提到了。 CMS并行GC是大多数应用的最佳选择,然而, CMS并不是完美的,在使用CMS的过程中会产生2个最让人头痛的问题: promotion fa...

Hosee
2016/05/12
763
1
Java虚拟机详解----JVM常见问题总结

声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04----GC算法和种类。那篇文章和本文是面试时的重点。 面试必问关键词:JVM垃圾回收、...

商者
2016/04/10
6
0
深入理解Java虚拟机:JVM高级特性与最佳实践(三):内存分配与回收策略

java技术体系中所提倡的内存管理最终可以归为自动化的解决了两个问题:给对象分配内存已经回收分配给对象的内存。 对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分配,当eden 区没...

熊大熊二
2015/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitMQ 在spring 的使用

一、准备工作 maven依赖 <dependency>  <groupId>com.rabbitmq</groupId>  <artifactId>amqp-client</artifactId>  <version>4.0.2</version></dependency> <dependency......

狼王黄师傅
昨天
1
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
1
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
3
0
跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
昨天
6
0
day26:shell题

1、 判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。 如果其生产商为AuthenticAMD,就显示其为AMD公司; 如果其生产商为GenuineIntel,就显示其为Intel公司; 否则,...

芬野de博客
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部