1
/** A Java class to demonstrate how a finalizer
2
* method is defined and used
3
*/
4
public class FinalizerClass {
5![](/Images/OutliningIndicators/InBlock.gif)
6
private int a, b;
7![](/Images/OutliningIndicators/InBlock.gif)
8
/** Class default constructor method */
9
public FinalizerClass() {
10
a = 1;
11
b = 2;
12
System.out.println( "Constructing an object!" );
13
}
14![](/Images/OutliningIndicators/InBlock.gif)
15
/** Class finalizer method
16
* @exception Throwable Any exception at all
17
*/
18
protected void finalize() throws Throwable {
19
System.out.println( "Doing object cleanup!" );
20
}
21![](/Images/OutliningIndicators/InBlock.gif)
22
/** Test method for the class
23
* @param args Not used
24
*/
25
public static void main( String[] args ) {
26
FinalizerClass x = new FinalizerClass();
27
FinalizerClass y = new FinalizerClass();
28
x = null; //强制将对象设置为无用单元
29
y = null;
30
System.gc(); //无用单元收集
31
System.runFinalization(); //运行完成器
32
}
33
}
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
运行结果为:
Constructing an object!
Constructing an object!
Doing object cleanup!
Doing object cleanup!