Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 关于finalize()的个人学习体会
javalean





发贴: 20
积分: 0
于 2005-08-08 14:55 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
// 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
*/




话题树型展开
人气 标题 作者 字数 发贴时间
4149 关于finalize()的个人学习体会 javalean 1081 2005-08-08 14:55

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   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