1.为什么使用垃圾收集

  a。把用户从释放占用内存的重担中解救出来

  b。帮助程序保持完整性

2.垃圾收集算法

  检测出垃圾对象,必须回收垃圾对象所使用的堆空间并还给程序

  垃圾检测:通过建立一个根对象集合并且检查从这些根对象开始的可触及性来实现。从根对象开始,任何可以被触及的对象都被认为是“活动”的对象。

3.引用计数收集器

  堆中每一个对象都有一个引用计数,任何引用计数为0的对象可以被当做垃圾收集,

4.跟踪收集器

  从根结点开始的对象引用图,遇到的对象以某种方式打上标记,标记清除,虚拟机遍历引用树,标记每一个遇到的对象,在清除阶段,未被标记的对象被释放了。

5.压缩收集器

6.拷贝收集器

  把所有的活动对象移到一个新的区域,

7.按代收集的收集器

  

8 对象可触及的生命周期

  每一个对象的三种状态:可触及的,可复活的,不可触及的,

  软引用,弱引用,影子引用,强引用禁止目标被垃圾收集,而软引用,弱引用和影子引用不禁止。

  

最新文章

  1. win系统登录密码重置
  2. webservice 之 WSDL的解析
  3. 标签语义化之常用HTML标签
  4. 关于PF_RING/Intel 82599/透明VPN的一些事
  5. response实现验证码图片
  6. [JAVA设计模式]第四部分:行为模式
  7. 网页爬虫--scrapy入门
  8. Redis的List操作
  9. AssetsManager下载类
  10. nodejs http静态服务器
  11. STM8不用手动复位进入自带Bootloader方法(串口下载)
  12. vim代码粘贴缩进混乱的问题[Linux]
  13. 201521123001《Java程序设计》第4周学习总结
  14. 201521123105 第11周Java学习总结
  15. bashell基础
  16. 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支
  17. [Spring] Annotation注释
  18. STS或eclipse安装SVN插件
  19. jquery插件Flot的简单讲解
  20. JavaScript截取中英文字符串

热门文章

  1. 39. Ext.data.SimpleStore的使用方法
  2. E20170804-mk
  3. Akka源码分析-Actor发消息(续)
  4. $P5018 对称二叉树$
  5. ORA-01012:not logged on的解决办法
  6. 数据清洗——python定位csv中的特定字符位置
  7. 363 Max Sum of Rectangle No Larger Than K 最大矩阵和不超过K
  8. 336 Palindrome Pairs 回文对
  9. css文本背景样式
  10. python框架之Flask基础篇(一)