zoukankan      html  css  js  c++  java
  • JAVA中的finalize()方法

    【转】JAVA中的finalize()方法

    今天早上看Thinking in java的【第四章 初始化和清除】.【  清除:终结和垃圾回收】的时候, 看到了这个东西。

    用于清理滴。。。

    当然,这个方法来自java.lang.Object

    finalize()方法的重写

    权限(Access)需要是protected或者是public ,不能是private

    finalize()方法不需要显示地调用, 在垃圾回收(GC)时会被自动先行调用的。

    据我测试,需要显示地调用垃圾回收方法(System.gc()),并且需要有new出来的尚未被销毁匿名对象的存在(调用其它语言暂不作考虑),finalizze()方法才会被调用

    Eg:

    public class F {
       public static void main(String args[]) {
          new F();   
          //int a[] = new int[3];   
          //F f= new F();   
          System.gc(); 
        } 
        public void finalize() throws Throwable{            
            //super.finalize();   
            System.out.println("finalize method was called!"); 
        }
    }
    

      

    上面的代码中,分别new出了一个匿名对象, 一个整型数组和一个实例对象f,从测试结果看来,只有在创建匿名对象并且显示地调用了  System.gc()方法的时候,finalize方法才被调用了。

    ---- 动动手指关注我!或许下次你又能在我这里找到你需要的答案!ZZZZW与你一起学习,一起进步!
  • 相关阅读:
    libusbwin32
    KMP
    windows.h
    iomanip
    C++继承
    LIST
    fstream
    VS2010中调试c++程序的方法
    sstream
    char 与char* 字符串与字符
  • 原文地址:https://www.cnblogs.com/zzzzw/p/4878794.html
Copyright © 2011-2022 走看看