zoukankan      html  css  js  c++  java
  • 【学习笔记】 唐大仕—Java程序设计 第5讲 深入理解Java语言之5.4 对象清除与垃圾回收

    /**
    * 对象清除与垃圾回收
    * @author cnRicky
    * @date 2018.11.10
    */

    对象清除与垃圾回收

    对象清除
    • 我们知道:new创建对象
    • 那么如何销毁对象?
    • Java中是自动清除
      • 不需要使用delete等方法人为销毁它
    对象的自动清除
    • 垃圾回收(garbage collection)

    • 对象回收是由Java虚拟机的垃圾回收线程来完成的

    • 为什么系统知道对象是否为垃圾?

      • 任何对象都有一个引用计数器,当其值为0时,说明该对象可以回收
    System.gc()方法
    • System.gc()方法
    • 它是System类的static方法
    • 它可以要求系统进行垃圾回收
    • 但它仅仅只是“建议(suggest)”
    finalize()方法
    • Java中没有“析构方法(destructor)”

    • 但Object的finalize()有类似功能

      • 系统在回收时会自动调用对象的finalize()方法
      • protected void finalize() throws Throwable{}
    • 子类的finalize()方法

      • 可以在子类的finalize()方法释放系统资源
      • 一般来说,子类的finalize()方法中应该调用父类的finalize()方法,以保证父类的清理工作能够正常进行
    try-with-resources
    • 由于finalize()方法的调用时机并不确定,所以一般不用finalize()
    • 关闭打开文件、清除一些非内存资源等工作需要进行处理
    • 可以使用try-with-resources语句(JDK1.7 以上)
    • 对于实现了java.lang.AutoCloseable的对象
    • try( Scanner in = new Scanner( ... ) ){ ...... }
    • 会自动调用其close()方法,相当于
    • finally{ in.close(); }
  • 相关阅读:
    网络流
    KMP算法
    光现象
    物理学习须知
    声现象
    常见物理量测量方法
    洛谷 P1373 小a和uim之大逃离
    洛谷 P1242 新汉诺塔
    电磁现象
    磁化
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/9940088.html
Copyright © 2011-2022 走看看