📅  最后修改于: 2020-09-27 01:31:12             🧑  作者: Mango
在Java中,垃圾意味着未引用的对象。
垃圾回收是自动回收运行时未使用的内存的过程。换句话说,这是销毁未使用对象的一种方法。
为此,我们在C语言中使用free() 函数 ,在C++中使用delete()。但是,在Java中它是自动执行的。因此,java提供了更好的内存管理。
有很多方法:
Employee e=new Employee();
e=null;
Employee e1=new Employee();
Employee e2=new Employee();
e1=e2;//now the first object referred by e1 is available for garbage collection
new Employee();
每次在垃圾回收对象之前调用finalize()方法。此方法可用于执行清理处理。此方法在Object类中定义为:
protected void finalize(){}
注意:JVM的垃圾收集器仅收集那些由new关键字创建的对象。因此,如果您创建了没有新对象的对象,则可以使用finalize方法执行清理处理(销毁其余对象)。
gc()方法用于调用垃圾收集器以执行清理处理。 gc()在系统和运行时类中找到。
public static void gc(){}
注意:垃圾收集是由称为垃圾收集器(GC)的守护程序线程执行的。在对象被垃圾回收之前,该线程调用finalize()方法。
public class TestGarbage1{
public void finalize(){System.out.println("object is garbage collected");}
public static void main(String args[]){
TestGarbage1 s1=new TestGarbage1();
TestGarbage1 s2=new TestGarbage1();
s1=null;
s2=null;
System.gc();
}
}
object is garbage collected
object is garbage collected
注意:终结和垃圾收集都不被保证。