📜  final finalize - Java (1)

📅  最后修改于: 2023-12-03 15:00:45.416000             🧑  作者: Mango

Java中的final和finalize

Java中的finalfinalize是两个不同的概念。本文将简要介绍它们的用法和区别。

final变量

final关键字可以用于声明变量、方法和类。这里主要介绍final变量。

final变量是一种常量,一旦赋值后就不能再修改。它可以在声明时初始化,也可以在构造函数中初始化,但只能被赋值一次。

public class FinalExample {
    final int MAX_VALUE = 10;
    final int MIN_VALUE;

    public FinalExample() {
        MIN_VALUE = 0;
    }
}

上面的代码中,MAX_VALUE和MIN_VALUE都是final变量。MAX_VALUE在声明时初始化,它的值是10;MIN_VALUE在构造函数中初始化,值为0。

需要注意的是,final变量一般使用大写字母表示。

finalize方法

finalize是一个Object类中定义的方法,它的作用是在垃圾回收器将对象从内存中清除之前,让对象自己清理自己。

在Java中,程序员一般不需要直接调用finalize方法,而是通过覆写它来实现对象的清理工作。

public class FinalizeExample {
    @Override
    protected void finalize() throws Throwable {
        // 清理代码
        super.finalize();
    }
}

上面的代码中,FinalizeExample类覆写了finalize方法,并在方法中写了清理代码。当对象被垃圾回收器清除时,就会调用finalize方法,并在方法中执行清理操作。

需要注意的是,finalize方法的调用不是由程序员直接控制的,而是由垃圾回收器控制的。程序员可以提供清理代码,但不能保证它会被执行。

总结

finalfinalize是Java中两个不同的概念。final用于声明常量,而finalize是用于垃圾回收的一个方法。

final变量一旦被赋值后就不能再修改,而finalize方法是在对象被垃圾回收器清除之前,让对象自己清理自己的机会。

需要注意的是,final变量一般使用大写字母表示。而finalize方法的调用不是由程序员直接控制的,而是由垃圾回收器控制的。