返回首页

java中finalize()方法的使用

来源:www.chengshu.net   时间:2022-05-13 18:03   点击:241  编辑:宇文艳   手机版

类的Finalize方法,可以告诉垃圾回收器应该执行的操作,该方法从Object类继承而来。在从堆中永久删除对象之前,垃圾回收器调用该对象的Finalize方法。注意,无法确切地保证垃圾回收器何时调用该方法,也无法保证调用不同对象的方法的顺序。即使一个对象包含另一个对象的引用,或者在释放一个对象很久以前就释放了另一个对象,也可能会以任意的顺序调用这两个对象的Finalize方法。如果必须保证采用特定的顺序,则必须提供自己的特有清理方法。

可从本书支持网站下载的示例程序GarbageCollection使用下列代码演示了Finalize方法:

Public Class Form1 Public Running As Boolean Private Class Junk Public MyForm As Form1 Public Sub New(ByVal my_form As Form1) MyForm = my_form End Sub ' Garbage collection started. Protected Overrides Sub Finalize() ' Stop making objects. MyForm.Running = False End Sub End Class ' Make objects until garbage collection starts. Private Sub btnCreateObjects_Click() Handles btnCreateObjects.Click Running = True Dim new_obj As Junk Dim max_i As Long For i As Long = 1 To 100000 new_obj = New Junk(Me) If Not Running Then max_i = i Exit For End If Next i MessageBox.Show(Allocated & max_i.ToString & objects) End Sub End Class Form1类先定义公有变量Running,然后定义Junk类,该类包含引用Form1类的变量。Junk类的构造函数保存创建它的Form1对象的引用,它的Finalize方法设置Form1对象的Running值为False。

顶一下
(0)
0%
踩一下
(0)
0%