1.什么是GC?

GC(Garbage Collection)是java中的垃圾回收器。是优化内存使用的一种机制,会清理出创建后没有使用的内存空间,释放资源。

2.垃圾判断策略?

引用计数法:
给对象加计数器,当被引用时,计数器累加,当没有引用时,计数为0,由此判定为垃圾。
可达性分析法:
image.png
通过GCRoots引用链来判定,对象被引用是会被加到引用链上,未被引用的如obj8、obj9、obj10不会再引用链上,会被判定为垃圾。

3.引用状态?

  • 强引用

用new关键字创建出来的对象

  • 软引用

  • 弱引用

  • 虚引用