初始化和清理的问题,求教大佬

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/tuzi007a/article/details/96649616

class Dog
{
boolean bo = false;
Dog (boolean al)
{
bo = al;
System.out.println(bo+“1”);
}
void bx()
{
bo = true;
System.out.println(bo+“2”);
}
void xt()
{
bo = false;
System.out.println(bo+“3”);
}
protected void finalize()
{
if(bo)
{
System.out.println(bo+“4”);
}
else
System.out.println(bo+“5”);
}

}
class Test1
{
public static void main(String[] args)
{
Dog d = new Dog(true);
d.xt();
new Dog(true);
System.gc();
}
}

这个程序,为啥在main方法里一定要再new一个新对象,才会执行protected void finalize() 这一步呀?
然后,如果System.gc(); 这个语句注释掉,为啥也是执行不了protected void finalize() 这一步呢?
这里看不懂,求教大佬们~

猜你喜欢

转载自blog.csdn.net/tuzi007a/article/details/96649616