• Java中finalize方法用途何在?


     1 package thinking.in.java.demo;
     2 
     3 /*
     4  * finalize的用途何在?
     5  * 
     6  *本例的终止条件是L所有的Book对象在被当做垃圾回收前都应该被签入。但是在main方法中
     7  *由于程序员的错误,有一本书没有被录入,要是没有finalize方法来验证终止条件,将很难发现这种缺陷
     8  *注意:System.gc()用于强制进行终止动作,即使不这样做,多执行几次应用程序,分配大量的存储空间
     9  *最终也会导致垃圾回收动作的执行
    10  * 
    11  */
    12 class Book{
    13     boolean checkout=false;
    14     public Book(boolean checkout){
    15         this.checkout=checkout;
    16     }
    17     void checkIn(){
    18         checkout=false;
    19     }
    20     protected void finalize() throws Throwable{
    21         super.finalize();
    22         System.out.println("Error checkIn");
    23     }
    24 }
    25 public class Testpage89 {
    26 
    27     /**
    28      * @param args
    29      */
    30     public static void main(String[] args) {
    31         Book novel=new Book(true);
    32         novel.checkIn();
    33         new Book(true);
    34         System.gc();
    35     }
    36 
    37 }

    参见java编程思想第四版:87-89页的内容

  • 相关阅读:
    ubuntu开机启动
    我的linux之路
    继承
    oracle 10g win7 win8 下的安装
    Java 安全检测
    BigDecimal 四舍五入
    Java Map 便利
    java split . |
    java 爬虫 Jsoup
    获取当前路径
  • 原文地址:https://www.cnblogs.com/ysw-go/p/5326892.html
Copyright © 2020-2023  润新知