Java对象符合以下条件便会被垃圾回收

1.所有实例都没有活动线程访问。
2.没有被其他任何实例访问的循环引用实例。
3.Java 中有不同的引用类型。判断实例是否符合垃圾收集的条件都依赖于它的引用类型

[

](https://gss0.baidu.com/-vo3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/sign=0f0b8ee8ce95d143da23ec2543c0ae3a/9d82d158ccbf6c81cda64e03ba3eb13532fa4043.jpg)
点击查看大图

1
2
3
4
5
6
7
8
9
10
11
12
在编译过程中作为一种优化技术,Java 编译器能选择给实例赋 null 值,从而标记实例为可回收。
class Animal {
public static void main(String[] args) {
Animal lion =new Animal();
System.out.println("Main is completed.");
}
protected void finalize() {
System.out.println("Rest in Peace!");
}
}