初始化与清理复习笔记-垃圾回收器
  • 在java虚拟机中,堆的实现像是队列一样,所以垃圾回收器对于提高对象的创建速度有着明显的效果
  • 其他系统中的垃圾回收机制-引用计数:引用计数是一种简单但是速度很慢的垃圾回收技术,每个对象含有一个引用计数器,当有引用连接至引用计数器,引用计数加一,当引用离开作用域或者被置为null,引用计数减一。缺陷:不能解决“交互自引用的对象组”问题。
  • 垃圾回收器依据的思想:对任何“活”的对象一定能追溯其存活在堆栈或静态存储区之中的引用。并由此,遍历堆栈和静态存储区之中的引用,找到所有“活”的对象,然后找到这些对象包含的所有引用,这种方式不光能找到所有“活”的对象,还能解决交互自引用的对象组”的问题。
  • 停止-复制:程序稳定之前的操作:将所有“活”的对象从当前堆复制到一个新的堆。这个堆空间连续。
  • 标记-清扫:程序稳定之后(只会产生少量垃圾):遍历所有引用,标记所有“活”的对象,没有被标记的对象就会被清理,这样得到的是一些不连续的空间需要得到连续的空间就需要重新整理剩下的对象。
  • 即时编译技术JIT:通过惰性评估,只在必要时才编译代码。