重写 Finalize 方法

原创 2004年06月23日 15:47:00

Finalize 方法在未能调用 Dispose 方法的情况下充当防护措施来清理资源。您应该只实现 Finalize 方法来清理非托管资源。

Object.Finalize 方法的范围是受保护的。当在类中重写该方法时,您应该保持这个有限的范围。

您无法从 C# 或 C++ 编程语言的托管扩展中调用或重写 Object.Finalize 方法。C# 和托管扩展提供析构函数作为编写终止代码的机制。在 C# 和托管扩展中,您必须使用析构函数语法来执行清理操作因为该语法隐式地为对象基类调用 Finalize 方法,所以十分方便易用。这保证了对当前类从其导出的所有级别的析构函数都调用了 Finalize。
下面的代码示例是为析构函数编写的。
~MyClass()
{
   // Perform some cleanup operations here.
}
该代码隐式翻译为下面的代码。
protected override void Finalize()
{
   try
   {
      // Perform some cleanup operations here.
   }
   finally
   {
      base.Finalize();
   }
}

慎用Finalize方法以及Finalize方法的妙用

首先,要知道finalize方法跟c++的析构函数不一样,jvm并不保证会执行。 一、慎用finalize方法 finalize方法在什么时候被调用: 在垃圾回收的时候,某个对象要被回收的时候,会...
  • q291611265
  • q291611265
  • 2015年07月29日 20:14
  • 2219

Java中的finalize方法理解

首先:system.gc()并不是你调用就马上执行的, 而是根据虚拟机的各种算法来来计算出执行垃圾回收的时间,另外,程序自动结束时不会执行垃圾回收的。 其次:对象被回收时,要经过两次标记,第一次标记...
  • q35445762
  • q35445762
  • 2015年07月16日 23:18
  • 1235

关于finalize()方法(总结)

finalize()是在java.lang.Object里定义的,也就是说每一个对象都有这么个方法。这个方法在gc启动,该对象被回收的时候被调用。其实gc可以回收大部分的对象(凡是new出来的对象,g...
  • x_i_y_u_e
  • x_i_y_u_e
  • 2016年05月11日 19:05
  • 2469

Java编程思想:关于Java垃圾定义和finalize方法的简单理解和使用

JAVA JAVA编程思想
  • u013206716
  • u013206716
  • 2015年10月07日 17:09
  • 295

java finalize方法的使用

《JAVA编程思想》: Java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。           (1).对象不一定会被回收。        (2)...
  • u010229420
  • u010229420
  • 2017年03月21日 10:18
  • 578

finalize()方法的使用

Java定义了finalize()方法,用于在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。在《Java编程思想》一书中,有这样一段话:   Java有垃圾回收器负责回收无用对象占据的内存...
  • xiangwanpeng
  • xiangwanpeng
  • 2016年09月07日 14:21
  • 210

java垃圾回收机制和finalize()方法

一、java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。        (1).对象不一定会被回收。        (2).垃圾回收不是析构函...
  • lurao
  • lurao
  • 2016年04月23日 11:43
  • 1923

finalize()方法对垃圾回收的影响

概述 Java中提供了一个类似C++析构函数的机制: finalize()方法,该函数允许子类重载,用于在对象被回收是释放资源。 但是一般情况下,尽量不要使用finalize函数进行资源的释放,...
  • f2006116
  • f2006116
  • 2016年09月17日 14:56
  • 286

java 中的finally{}块与finalize()方法

finalize()方法, /** * Called by the garbage collector on an object when garbage collection ...
  • bingliquhuo
  • bingliquhuo
  • 2014年02月16日 23:27
  • 564

.NET Memory Profiler 托管环境内存检测工具,.net内存回收与Dispose﹐Close﹐Finalize方法

内存检测工具很多,.NET的GC也不是万能的。.NET比较专业的工具推荐 .NET Memory Profiler (收费)。 ============== 详细参考 网址:http://blo...
  • wlanye
  • wlanye
  • 2012年06月15日 13:14
  • 2550
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:重写 Finalize 方法
举报原因:
原因补充:

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