文档章节

GC算法总结

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

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

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

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

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

复制算法:

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

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

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

 

© 著作权归作者所有

共有 人打赏支持
小石头哥

小石头哥

粉丝 7
博文 17
码字总数 13799
作品 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
使用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
笔试面试——java基础知识

1. JVM架构 2. gc 算法问题 3. JVM 安全 4. JVM 平台无关 5. JIT 6. 流总结 7.NIO 8. 不对成加密算法 9. 多线程 参考资料: 1 深入理解JVM 原文链接:http://blog.csdn.net/ostrichmyself/ar...

晨曦之光
2012/03/09
109
0
f2fs——新型flash友好文件系统gc部分源码分析

1、F2FS数据布局 F2FS 将整个卷切分成大量的 Segments,每个 Segment 的大小是固定的2 MB。连续的若干个Segments 构成 Section,连续的若干个 Sections 构成 Zone。 F2FS 将整个卷切分成6个区...

wojiushihuchao1
2017/07/25
0
0
深入理解JVM的内存结构及GC机制

一、前言 JAVA GC(Garbage Collection,垃圾回收)机制是区别C++的一个重要特征,C++需要开发者自己实现垃圾回收的逻辑,而JAVA开发者则只需要专注于业务开发,因为垃圾回收这件繁琐的事情J...

EnjoyAndroid
2017/11/23
0
0
Java虚拟机详解04----GC算法和种类【重要】

本文主要内容: GC的概念 GC算法     引用计数法(无法解决循环引用的问题,不被java采纳)   根搜索算法   现代虚拟机中的垃圾搜集算法:       标记-清除       复制算...

商者
2016/04/10
12
0
Java 中的 GC -- GC基础常识

---------- 文中讨论的GC原理均基于 Sun Hotspot JVM,对于不同 JVM 实现可能会有不同。 1. GC (Gabage Collector) 做了什么事情 决定哪些内存需要回收(物理内存的位置)。 决定何时回收这...

longjuelegend
2016/08/30
26
0
php新垃圾回收机制说明

在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么变量的空...

stone_
2015/10/15
34
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CVE-2013-0077 堆溢出分析

找了很久才发现这个环境比较容易搭建分析... 环境: 系统---Win XP SP3 漏洞程序:QQPlayer 3.7.892.400 出错DLL:quartz.dll 6.5.2600.5512 调试工具:x32db+gflag.exe 过程: 首先gflag设置...

Explorer0
16分钟前
5
0
python上传文件

//注意 <form action="/login/" method="post" enctype="multipart/form-data"> f=request.FILES.get('fafa') ff=open(f.name,mode='wb') for i in f.chunks(): ff.write(i) ff.close()......

南桥北木
28分钟前
0
0
CISCO VPN Client Reason 442 WIN8/10错误解决方案

http://jdkleo.iteye.com/blog/2163493 引用 http://my.oschina.net/cloudcoder/blog/220391?p={{currentPage 1}} 在使用cisco VPN 客户端登录时,产生Reason 442:Failedto enable Virtual......

chenfj_fer
31分钟前
0
0
信号量有没有容量限制?

之前一直误以为信号量初始化的时候那个初始化的值是信号量的“容量”,昨天同事指出了我的错误,最初我是不相信的,经过以下代码实践,证明了我的错误: Java版: import java.util.concurr...

锟斤拷烫烫烫
35分钟前
0
0
【RocketMQ】Message存储笔记

概述 消息中间件存储分为三种,一是保存在内存中,速度快但会因为系统宕机等因素造成消息丢失;二是保存在内存中,同时定时将消息写入DB中,好处是持久化消息,如何读写DB是MQ的瓶颈;三是内...

SaintTinyBoy
46分钟前
0
0
Android应用Context详解及源码解析

Android应用Context详解及源码解析 本文定位:优质文章收集 本文转载 1 背景 今天突然想起之前在上家公司(做TV与BOX盒子)时有好几个人问过我关于Android的Context到底是啥的问题,所以就马...

lichuangnk
今天
0
0
PostgreSQL的昨天今天和明天

PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS), 也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。 这个起源于伯克利(...

闻术苑
今天
1
0
Mysql对自增主键ID进行重新排序

1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2,添加新主键字段: ALTER TABLE `table_name` ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST; 3,设置新主键: ALTER TABLE `table_nam......

niithub
今天
0
0
福利篇:免费csdn vip账号分享

分享一个发布免费csdn vip账号的网站:啰嗦vip www.lostvip.com , 各种软件开发类的视频教程:慕课网、动脑学院、黑马各大培训机构VIP视频教程,非常不错!

在水一方发盐人
今天
1
0
Nginx+Tomcat搭建高性能负载均衡集群

一、 工具   nginx-1.8.0   apache-tomcat-6.0.33 二、 目标   实现高性能负载均衡的Tomcat集群:    三、 步骤   1、首先下载Nginx,要下载稳定版:      2、然后解压两个Tom...

码代码的小司机
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部