gc一点理解

来源:互联网 发布:虚拟社交网络 编辑:程序博客网 时间:2024/06/03 21:35

好像好久没有写博客 ,今天特地抽空看了一下jvm中垃圾回收算法

我们都知道java中当对象不在使用时,java会帮我们进行对象清除。下面特地介绍几种垃圾回收算法

一:引用计数法 这是个比较古老而经典的垃圾回收算法,其核心就是在对象被引用时加1 ,而当引用不在使用时则减1,但是这种方法有个比较严重的问题,就是无法循环引用的情况。


二:标记清除法:就是分为标记和清除两个阶段进行处理内存中对象,当然这种方法也有比较大的弊端,就是碎片的问题,垃圾回收后的空间不是连续的,不连续的空间使用效率比较低。


三:复制算法:其核心思想就是将内存空间分为两块,每次只使用其中的一块,在垃圾回收时,将正在使用的内存中存活的对象复制到未使用的内存中,之后在清除之前使用的内存对象,反复去交换两个内存中的角色,完成垃圾收集。(Java中新生代使用这种算法


四:标记压缩法:标记压缩法在标记清除基础上做了优化,把存活的对象压缩到内存一端,而后进行垃圾清理。(java中老年代就是使用这种算法


垃圾收集器:

串行回收器: 串行回收器使用单线程进行垃圾回收,每次回收时,串行回收器只有一个工作线程,对于并行能力较弱的计算机来说,串行回收器的专注性与独占性往往有更好的性能提现。使用-XX:+UseSerialGC 参数可以设置新生代串行回收器和老年代串行回收器。

并行回收器:

1.parNew回收器, 是一个工作在新生代的垃圾回收器,他只是简单的将串行回收多线程化,他的回收策略和算法和串行回收器一样的。

使用 -XX:UseParNewGC 新生代ParnNew 回收器,老年代则使用串行回收器

2. 新生代ParallelGC 回收器,使用了复制算法的收集器,也是多线程独占形式的收集器,但ParallelGC回收器有个重要的特点 ,就是它非常关注系统的吞吐量。

3.老年代ParallerOldGC 回收器也是一种多线程的回收器,和新生代的ParallerGC回收器一样,也是一种关注吞吐量的回收器 它使用的标记压缩器算法进行实现的。

cms回收器:   

它使用的是标记清除算法,主要关注系统停顿时间。

使用-XX:+UseConcMarkSweepGC 进行设置。

使用-XX:+ConGCThreads 设置并发线程数量。

CMS并不是独占的回收器,也就说CMS回收的过程中,应用程序仍然在不停的工作,又会有新的垃圾不断的产生,所以在使用CMS在使用过程中确保应用程序内存足够可用。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 用edius剪的视频卡顿怎么办 微店手机号换号登不进去了怎么办 微信加人被限制怎么办 微信与电脑同步怎么办 微信号盗了红包怎么办 微信被别人登录冻结了怎么办? 微信账号被冻结了怎么办 我微信冻结了怎么办 微信账号冻结了怎么办 微信被冻结里面的钱怎么办 微信账户冻结了怎么办 微信公众号忘记密码怎么办 网课没有刷完怎么办 形势与政策挂了怎么办 苹果录屏声音小怎么办 老师跟学生家长吵起来了怎么办 蓝幕拍摄抠像有蓝色怎么办 学东西悟性不高怎么办 微商不会写笔记怎么办 布鞋买大了一码怎么办 凉鞋买大了一码怎么办 皮鞋小了一码怎么办妙招 图书馆借的书本损坏了怎么办 把人打伤没钱赔怎么办 小孩不小心打伤了老师怎么办 高考进了三段怎么办 工作中和领导产生冲突怎么办 酒店不给员工发工资怎么办 裙子没有解开超市的锁怎么办 接待老外听不懂他说的怎么办 脚脱皮又痒又臭怎么办 成都应聘平面模特被骗了怎么办 文明6开场一堆蛮族怎么办 幼儿园里出了水痘怎么办 穿高跟鞋脚容易出汗怎么办 粗跟鞋走路太响怎么办 粗跟鞋鞋跟很响怎么办 皮鞋跟走路太响怎么办 穿高跟鞋脚崴了怎么办 高跟鞋小了一码怎么办 高跟皮鞋磨脚怎么办