• 技术文章 >java >java基础

    finalize在java中的清理

    小妮浅浅小妮浅浅2021-02-21 09:46:05原创3807

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    1.概念

    finalize()主要用于在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。

    2.语法

    1

    protected void finalize() throws Throwable { }

    3.参数

    4.返回值

    没有返回值

    5.实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    public class FinalizeTest {

      

        static  class Person {

            String name;

      

            @Override

            protected void finalize() throws Throwable {

                System.out.println("finalize " + name);

                super.finalize();

            }

        }

      

      

        public static void main(String[] args) {

            Person p = new Person();

            p.name = "ltt";

            p = null// 此后,p原先指向的Person对象会在某个时间被 gc 回收掉

      

            System.gc();  // 建议 JVM 进行 gc 操作,但不一定会进行 gc 操作

            System.runFinalization();  // 执行将要被销毁的对象的 finalize 方法

        }

    }

    运行结果

    1

    finalize ltt

    为了触发 gc行为,用了下面的代码:

    1

    2

    System.gc();  // 建议 JVM 进行 gc 操作,但不一定会进行 gc 操作

    System.runFinalization();  // 执行将要被销毁的对象的 finalize 方法

    以上就是finalize在java中的清理方法,在我们系统内容将要满时可以使用这种方法,不过这类情况出现的不多,所以finalize使用的次数也比较少。

    专题推荐:java finalize
    上一篇:java中finally不执行的分析 下一篇:java中throws的使用

    相关文章推荐

    • java中try-catch的使用• java finally处理异常• java中finally不执行的分析

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网