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