垃圾回收机制
垃圾回收机制是一套自动管理内存的技术,如果某一块内存是不可用的,那么将其释放。
垃圾回收的实现——自动管理内存,因为gc的执行时机可能是应用程序运行时的任意时间, 所以有可能对应用的性能产生重大影响。也有可能比手动管理内存更快。
GC分类
-
Reference counting
- 在new完对象,把地址赋值给引用变量的时候(比如:A aa = new A()),记录对象A被引用了一次(count++)。
- 在对象失去一次引用的时候(比如上面的aa执行了aa=null,对象new A()就没有被引用了),清除一次对象引用(count--)
- 在对象的count为0的时候,表示此对象不可用,释放对象所使用的内存。
Tracing
获取根对象,从根对象开始,追踪使用到的对象,没有追踪到的视为垃圾对象。