对象析构和finalize方法

原创 2006年06月12日 20:15:00
    Java能自动的进行垃圾收集,可以将finalize方法添加到任何类中,finalize方法会在垃圾收集器清除对象之前被调用。但是实际的操作中,不要依赖finalize方法回收任何短缺资源,因为很难知道这个方法什么时候才能被调用。
    有个叫作System.runFinalizersOnExit(true)的方法可以确保finalize方法在Java关闭之前被调用。不过这个方法并不安全。另一种替代的方法是使用Runtime.addShutdownHook的方法增加“关闭钩子”。
    如果需要在资源使用完毕后关闭资源,那就需要进行手工的管理,对需要清除的资源使用dispose方法。重要的是,如果你使用的类含有dispose方法,你需要在对象操作完成后调用这个方法,尤其是,如果类的某个实例字段含有这个dispose方法,要提供一个释放实例字段的dispose方法。

Java中的 finalize() 与c++的析构函数 分析

《JAVA编程思想》: java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。       (1).对象不一定会被回收。        (2).垃圾回...
  • lx627776548
  • lx627776548
  • 2016年09月05日 16:44
  • 1454

php 析构方法 详解

析构方法说明: 1.      析构方法会自动调用 2.      析构方法主要用于销毁资源(比如释放数据库的链接,图片资源...销毁某个对象..); 析构函数会在到对象的所有的引用都被删除...
  • u013372487
  • u013372487
  • 2015年06月27日 17:10
  • 962

C++如何禁止全局对象被析构

C++如何禁止全局对象被析构 转自http://www.fenesky.com/blog/2014/04/15/global-object-destructor.html 全局对象无论是在...
  • hudaliquan
  • hudaliquan
  • 2015年11月26日 14:33
  • 1132

C++学习笔记之——局部对象和临时对象的构造和析构时机

在写这篇文章之前,一直没有注意过C++中临时对象何时调用析构的。直到最近看代码的过程中遇到这种情况。 由于不了解临时对象何时调用析构函数,所以很不了解代码的实现。甚至还用局部对象的析构时机去看待。先讲...
  • huangjh2017
  • huangjh2017
  • 2017年04月19日 17:22
  • 385

浅析c++对象销毁之析构函数

在C++中,如果定义了对象,在内存中给它分配了空间;如果使用完以后,忘了销毁对象,即无法释放它所占用的内存空间。则这些内存空间一直被占用,直到重 启计算机才可释放,这样就造成了内存泄露。例:本来512...
  • u010700335
  • u010700335
  • 2014年08月25日 20:27
  • 2456

包含对象成员的类的构造与析构顺序

构造函数的执行顺序: (1)存在继承关系时,先执行父类的构造函数,再执行子类的构造函数; (2)当一个类中含有对象成员时,在启动本类的构造函数之前,先分配对象空间,按对象成员的声明顺序执行他们各自的构...
  • pfd001
  • pfd001
  • 2016年03月25日 04:00
  • 912

构造方法与析构方法区别

Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量。在创建对象时,会自动调用类的构造方法。 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,...
  • shenshizhong
  • shenshizhong
  • 2016年08月19日 14:54
  • 820

C++构造与析构(18) - 静态对象(static object)何时销毁

C++的static关键字 static关键字可以用于修改局部变量,函数,类的数据成员以及对象。静态局部变量只初始化一次,然后在每次函数调用时都保持它的值。静态成员函数可以直接用类来调用,不需要创建对...
  • shltsh
  • shltsh
  • 2015年05月25日 01:20
  • 2213

C++ static对象 和析构函数的关系

背景: 用C++实现一个矩阵类:类的定义如下图 1>子函数返回static变量 例如:重载+运算符时,想要实现矩阵类对象相加,形如M3=M2+M1的功能。加法的操作数有两个M2、M1,其...
  • yudejiao
  • yudejiao
  • 2016年11月24日 09:12
  • 587

指针对象数组的析构问题

类中在对象执行完它的行为后,生命周期结束,一般会调用析构函数来回收该对象所拥有的资源,那么如果该对象是一个数组,我们应该注意一些什么呢: 先看下面一段代码: #include using name...
  • gogoky
  • gogoky
  • 2016年04月11日 10:40
  • 874
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对象析构和finalize方法
举报原因:
原因补充:

(最多只允许输入30个字)