Topic: 关于finalize()的个人学习体会 |
Print this page |
1.关于finalize()的个人学习体会 | Copy to clipboard |
Posted by: javalean Posted on: 2005-08-08 14:55 // Finalize.java //编写具有finalize()方法的类,并在方法中打印消息。 //在main()方法中为该类创建一个对象。试解释这个程序的行为。 //关于finalize()方法的说明在java.lang.Object中 class Cartoon{ Cartoon(){ System.out.println("display a cartoon people"); } //finalize()方法的声明为 protected void finalize() throws Thwowable //finalize()方法主要的功能是,当垃圾回收器确定内存中已经不存在对一个对象的引用的时候, //该方法被垃圾回收器调用用于回收对象占用的内存。 //子类可以重载此方法,用于释放资源和执行其它操作。 //finalize()方法通常用来在对象死亡前作一些清理工作 protected void finalize(){ System.out.println("clean up the cartoon people"); } } public class Finalize{ public static void main(String [] args){ Cartoon people =new Cartoon(); //用户也可以在程序中明确的调用finalize() //这时,finalize()方法和其它在类中定义的方法并没有区别 people.finalize(); //新创建一个对象 //对象没有被引用 new Cartoon(); //强迫进行回收对象的内存,这时垃圾回收器将自动调用finalize()方法 //这里只是释放掉了第二次new来创建的内存的空间 //而第一次new创建的对象由于有引用, //要在垃圾回收器判断其内存耗尽时才会再次调用finalize()来释放掉people指向的对象的空间 System.gc(); } }///:~ /*输出结果为: display a cartoon people clean up the cartoon people display a cartoon people clean up the cartoon people */ |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |