Java 中 final、finally 和 finalize 的区别2025年4月8日 | 阅读 6 分钟 final、finally 和 finalize 是 Java 中用于异常处理的关键字。这些关键字各有不同的功能。final、finally 和 finalize 之间最基本的区别在于:final 是一个访问修饰符,finally 是异常处理中的一个块,而 finalize 是 Object 类的一个方法。 final 关键字final 是一个用于限制更改的关键字。final 变量不能被重新赋值,final 方法不能被重写,final 类不能被继承。它确保了不变性,通常用于常量。 final 关键字的特点
final 关键字示例让我们看下面的例子,其中我们声明了一个 final 变量 age。一旦声明,它就不能被修改。 示例当我们编译上述程序时,我们会收到以下错误。 Main.java:7: error: cannot assign a value to final variable age age = 55; ^ 1 error 在上面的例子中,我们声明了一个 final 变量。同样,我们可以使用 final 关键字声明 final 方法和 final 类。 finally 块finally 是一个与 try-catch 语句一起使用的块,用于执行重要代码,如关闭资源。无论是否发生异常,它都会运行,从而确保执行清理操作。 Java finally 块示例让我们看下面的例子,其中 Java 代码抛出了一个异常,并且 catch 块处理了该异常。之后,finally 块会在 try-catch 块之后执行。此外,其余代码也会正常执行。 finally 的特点
示例编译并运行输出 Inside try block Exception handled java.lang.ArithmeticException: / by zero finally block is always executed rest of the code... finalize() 方法finalize() 是垃圾回收器在销毁对象之前调用的方法。它用于执行清理操作,如释放资源,但它已被弃用,在现代 Java 中不推荐使用。 finalize() 方法的特点
finalize() 方法示例示例编译并运行输出 Main method completed. finalize() method called before object is garbage collected. Java 中的 final vs finally vs finalize()下面给出了 final、finally 和 finalize 之间差异的列表
Final vs Finally vs Finalize 选择题1. 以下哪个正确描述了 Java 中 final 关键字的用法?
答案:B 解释:Java 中的 final 关键字可用于标记变量、方法或类。final 变量在初始化后不能被重新赋值,final 方法不能被子类重写,final 类不能被子类化。 2. Java 中 finally 块的目的是什么?
答案:A 解释:Java 中的 finally 块用于执行必须运行的代码,无论是否抛出异常,例如资源清理。在 try 和 catch 块之后,如果它们存在,finally 块总是会被执行。 3. finalize 方法在 Java 中的正确用例是什么?
答案:B 解释:Java 中的 finalize 方法在对象从内存中删除之前由垃圾回收器调用。它用于执行清理操作,例如释放系统资源。然而,通常不鼓励使用它,而是倾向于使用其他资源管理技术,如 try-with-resources 和显式资源管理。 4. 关于应用于方法的 final 关键字,以下哪个说法是正确的?
答案:C 解释:当一个方法被声明为 final 时,意味着它不能被子类重写。这用于防止在子类中更改方法的行为。 5. finally 块如何与 try 或 catch 块中的 return 语句交互?
答案:A 解释:finally 块总是在 try 和 catch 块之后执行,但在控制由于 return 语句返回到调用方法之前。这意味着 finally 块中的代码在方法返回一个值之前执行。 下一主题带方法重写的异常处理 |
我们请求您订阅我们的新闻通讯以获取最新更新。