【JVM垃圾收集算法】

1)标记-清除算法:

  标记阶段:先通过根节点,标记所有从根节点开始的对象,未被标记的为垃圾对象(错了吧?)

  清除阶段:清除所有未被标记的对象

2)复制算法:

  将原有的内存空间分为两块,每次只使用一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未被使用的内存块中,然后清除正在使用的内存块中的所有对象。

3)标记-整理算法:

  标记阶段:先通过根节点,标记所有从根节点开始的可达对象,未被标记的为垃圾对象

  整理阶段:将所有的存活对象压缩到内存的一段,之后清理边界所有的空间

三种算法的比较:

  效率: 复制 > 标记整理 > 标记清除  (此处的效率只是简单的对比时间复杂度,实际情况不一定如此)

  内存利用率: 标记整理 > 标记清除 > 复制

  内存整齐度: 复制 = 标记整理 > 标记清除

最新文章

  1. 输入scanner,if-else
  2. Cell的一些坑: UITableViewCell宽度,在iphone5的时候是320,在iphone6的时候为啥也是320?
  3. 学习Nim语言.rar(nim语言中文教程下载)
  4. 【转】TCP协议的无消息边界问题
  5. POJ 3258 River Hopscotch
  6. DDR(二)
  7. Windows 7 + Visual Studio 2012 + cocos2d-x 2.1.5
  8. BestCoder Round #49
  9. switch 与 whille相互套用
  10. js模块化加载器实现
  11. MySQL InnoDB下关于MVCC的一个问题的分析
  12. 用tar压缩xz格式出错
  13. 简述at和crontab命令
  14. 「Android」单例的五种写法
  15. (python)数据结构---元组
  16. javascript——获取列表选择行的列值
  17. DrawDibDraw__ZC测试
  18. malloc和free的实现
  19. 解决MAC下xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)的问题
  20. js获取dom元素的子元素,父元素,兄弟元素小记

热门文章

  1. VFL语言
  2. 重载operator<<
  3. C#中string的小结
  4. 简单的jquery ajax文件上传功能
  5. bayboy下载安装
  6. MFC 控件用法
  7. 获取所有input值 处理成json格式再利用$.post提交
  8. overthewire朝花夕拾
  9. 自定义viewpager的界面切换动画
  10. java设计模式(二)