📅  最后修改于: 2023-12-03 15:00:45.416000             🧑  作者: Mango
Java中的final
和finalize
是两个不同的概念。本文将简要介绍它们的用法和区别。
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
是一个Object类中定义的方法,它的作用是在垃圾回收器将对象从内存中清除之前,让对象自己清理自己。
在Java中,程序员一般不需要直接调用finalize方法,而是通过覆写它来实现对象的清理工作。
public class FinalizeExample {
@Override
protected void finalize() throws Throwable {
// 清理代码
super.finalize();
}
}
上面的代码中,FinalizeExample类覆写了finalize方法,并在方法中写了清理代码。当对象被垃圾回收器清除时,就会调用finalize方法,并在方法中执行清理操作。
需要注意的是,finalize方法的调用不是由程序员直接控制的,而是由垃圾回收器控制的。程序员可以提供清理代码,但不能保证它会被执行。
final
和finalize
是Java中两个不同的概念。final用于声明常量,而finalize是用于垃圾回收的一个方法。
final变量一旦被赋值后就不能再修改,而finalize方法是在对象被垃圾回收器清除之前,让对象自己清理自己的机会。
需要注意的是,final变量一般使用大写字母表示。而finalize方法的调用不是由程序员直接控制的,而是由垃圾回收器控制的。