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(); }
  • 相关阅读:
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    72. Edit Distance
    583. Delete Operation for Two Strings
    582. Kill Process
    indexDB基本用法
    浏览器的渲染原理
    js实现txt/excel文件下载
    git 常用命令
    nginx进入 配置目录时
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/9940088.html
Copyright © 2011-2022 走看看