代码改变世界

Java 读书笔记 (十四) Java 方法

2017-12-25 16:51  钱先生  阅读(205)  评论(0编辑  收藏  举报

finalize() 方法

finalize() 用来清除回收对象。  //为什么要回收内存?怎样写可以避免内存过多占用?什么时候需要手动回收内存?

1 protected void finalize()
2 {
3 //在这里终结代码
4 }

关键字protected 是一个限定符,它确保finalize()方法不会被该类以外的代码调用。
Java的内存回收可以由JVM来自动完成。如果手动使用,可以使用上面的方法。

实例:

 1 public class FinalizationDemo {
 2     public static void main(String[]args){
 3         Cake c1=new Cake(1);
 4         Cake c1=new Cake(2); 
 5         Cake c1=new Cake(3);
 6 
 7          c2=c3=null;
 8          System.gc();   //调用Java垃圾收集器
 9       }
10 }
11 
12 class Cake extends Object{
13     private int id;
14     public Cake(int id){
15         this.id=id;
16         System.out.println("Cake Object"+id+"is created");
17      }
18      protected void finalize() throws java.lang.Throwable{
19          super.finalize();
20          System.out.println("Cake Object"+id+"is disposed");
21      }
22 }
23 
24 
25 /* 执行以上代码, 输出结果如下:
26     $ javac FinalizationDemo.java
27     $ java FinalizationDemo
28     Cake Object 1is created
29     Cake Object 2is created
30     Cake Object 3is created
31     Cake Object 2is disposed
32     Cake Object 1is disposed