1.垃圾回收中主要同个引用计数法和可达性分析法来判断对象是否可以回收。
(1)引用计数法:当对象被其他对象引用计数+1,当其他对象解除引用当前对象则-1,最终进行GC的时候会对计数为0的对象进行回收。
(2)可达性分析法:会根据当前对象是否有roots跟引用,如果没有则会对其进行回收,可以作为跟引用的主要有:Thread、类加载器、static静态成员、本地方法栈、栈帧中的局部变量等。
2.如何判断一个常量是否可以被回收,主要通过判断其是否被其他对象引用,如常量池中的"hg"字符串,没有被String 对象引用则会被回收。