java中的垃圾回收机制
java.lang.object
如果一个类没有从其他类派生那么他总从 object类派生 这个类中有 protected void finalize()这个函数 这个对象将被回收的时候 会调用这个函数 我们可以在 我们创建的 类中重写这个函数 来实现垃圾回收模拟
在jvm虚拟机中垃圾回收是作为第一优先级的线程执行 当内存不够的时候才会执行 所以我们再 我们重载我finalize函数 看不到输出
如果我们想让垃圾回收运行
system.gc() 显示运行垃圾收集器 System类中的静态函数 执行垃圾回收
代码如下 :
public class garbage
{
int index;
static int count =0;
garbage()
{
System.out.println("object" + count + "construct!");
count++;
setIndex(count);
}
void setIndex(int n)
{
index=n;
showIndex();
}
void showIndex()
{
System.out.println(this.index);
}
protected void finalize()
{
System.out.println("object"+index+ "is reclaimed");
}
public static void main(String []args)
{
new garbage(); //构造类的实例
new garbage();
new garbage();
new garbage();
System.gc() ;//执行垃圾回收