如何实现强制gc
当一个对象对于当前使用它的应用程序变得不可访问时,它可以被回收。
Java垃圾回收是由jvm自动执行的,而不是手动操作的,所以当没有对某个对象的引用时,该对象处于被jvm回收的状态,并没有立即销毁。
1,类?动物?{公?静电?作废?main(String[]?args)?{动物?狮子?=?新的?动物();System.out.println("Main?是吗?已完成。”);}
2、受保护?作废?finalize()。{System.out.println("Rest?在?和平!”);}}
垃圾收集器只能回收已经丢失引用的对象,例如
A A 1 =新A[];
al = null
这时如果调用System.gc(),就可以回收A指向a1之前的对象。
在实例化行之后,Lion对象从未被使用过。
因此,作为一种优化措施,Java编译器可以在实例化该行后直接赋值lion = null。
因此,finalize函数可以打印出‘安息吧!’甚至在SOP输出之前。。
不能证明这一定会发生,因为这取决于JVM的实现和运行时使用的内存。
如果编译器看到该实例以后再也不会被引用,它可以提早选择并释放实例空间。