• effective java —— 终结方法守卫者


    目录:

    effective java —— 终结方法守卫者

    effective java 第2章:创建和销毁对象。第7条 : 避免使用终结方法。最后的“终结方法守卫者 (finalizer guardian)”的例子,以加深理解。

     1 /**
     2  * chapter 2——终结守卫者
     3  * @ClassName: Parent
     4  * TODO
     5  * @author xingle
     6  * @date 2015-3-11 下午3:49:47
     7  */
     8 public class Parent {
     9     
    10     public static void main(String[] args){
    11         doSth();
    12         System.gc();  
    13         try {
    14             Thread.sleep(2000);
    15         } catch (InterruptedException e) {
    16             e.printStackTrace();
    17         }
    18     }
    19 
    20     /**
    21      * TODO
    22      * @author xingle
    23      * @data 2015-3-11 下午3:51:02
    24      */
    25     private static void doSth() {
    26         Child c = new Child();
    27         System.out.println(c);        
    28     }
    29     
    30     private final Object guardian = new Object(){
    31         
    32         @Override
    33         protected void finalize(){
    34              System.out.println("执行父类中匿名内部类--终结方法守卫者,重写的finalize()");
    35              // 在这里调用Parent重写的finalize即可在清理子类时调用父类自己的清理方法
    36              parentlFinalize();
    37         }
    38     };
    39 
    40     /**
    41      * TODO
    42      * @author xingle
    43      * @data 2015-3-11 下午3:55:10
    44      */
    45     protected void parentlFinalize() {
    46          System.out.println("执行父类自身的终结方法");          
    47     }
    48 }
    49 
    50 class Child extends Parent {
    51 
    52     @Override
    53     protected void finalize() {
    54         System.out.println("执行子类finalize方法,注意,这里子类并没有调用super.finalize()");
    55         // 由于子类(忘记或者其他原因)没有调用super.finalize()
    56         // 使用终结方法守卫者可以保证子类执行finalize()时(没有调用super.finalize()),父类的清理方法仍旧调用
    57     }
    58 }

    执行结果:

  • 相关阅读:
    Hdu3022 Sum of Digits
    bzoj3864 Hero meet devil
    bzoj2448 挖油
    poj3783 Balls
    bzoj3802 Vocabulary
    Hdu5181 numbers
    Hdu5693 D Game
    图形填充之边标志算法
    图形填充之栅栏填充算法
    图形填充之种子填充算法
  • 原文地址:https://www.cnblogs.com/xingele0917/p/4330182.html
Copyright © 2020-2023  润新知