当前位置: 首页 > 面试题库 >

Java:final、finally、finalize 有什么区别?

郎琪
2023-04-24

final可以修饰类,变量,方法,修饰的类不能被继承,修饰的变量不能重新赋值,修饰的方法不能被重写

finally用于抛异常,finally代码块内语句无论是否发生异常,都会在执行finally,常用于一些流的关闭。

finalize方法用于垃圾回收。

一般情况下不需要我们实现finalize,当对象被回收的时候需要释放一些资源,比如socket链接,在对象初始化时创建,整个生命周期内有效,那么需要实现finalize方法,关闭这个链接。

但是当调用finalize方法后,并不意味着gc会立即回收该对象,所以有可能真正调用的时候,对象又不需要回收了,然后到了真正要回收的时候,因为之前调用过一次,这次又不会调用了,产生问题。所以,不推荐使用finalize方法。

 类似资料:
  • 本文向大家介绍final、finally、finalize 的区别?相关面试题,主要包含被问及final、finally、finalize 的区别?时的应答技巧和注意事项,需要的朋友参考一下 final:是修饰符,如果修饰类,此类不能被继承;如果修饰方法和变量,则表示此方法和此变量不能在被改变,只能使用。 finally:是 try{} catch{} finally{} 最后一部分,表示不论发生

  • 本文向大家介绍请说明一下final, finally, finalize的区别。相关面试题,主要包含被问及请说明一下final, finally, finalize的区别。时的应答技巧和注意事项,需要的朋友参考一下 考察点:声明 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Objec

  • 本文向大家介绍Java中Final,Finally和Finalize之间的区别,包括了Java中Final,Finally和Finalize之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解Java中“Final”、“Finally”和“Finalize”之间的区别。 Final 它是一个关键字。 它用于对类,方法和变量施加限制。 它不能被继承。 它不能被覆盖。 final方

  • (1)用来修饰一个引用  如果引用为基本数据类型,则该引用为常量,该值无法修改;  如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。  如果引用时类的成员变量,则必须当场赋值,否则编译会报错。 (2)用来修饰一个方法 当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。 (3)用来修饰类 当用f

  • 问题内容: 在Java中,目的是什么做的关键字,并履行? 问题答案: 可用于标记变量“不可更改” 也可以使方法“不可替代” 也可以使类不是“可继承的”。即该类不能被子类化。 最后 在try / catch语句中用于“始终”执行代码 Java 7有一个新的try with resources语句 ,可用于自动关闭显式或隐式实现java.io.Closeable或java.lang.AutoClose

  • 我没有受过CS方面的教育,但我已经专业地用Java编程近十年了,我从未见过任何人在生产系统中实现。这并不意味着它没有它的用途,或者和我一起工作的人一直在做正确的事情。 所以我的问题是,有哪些实现的用例不能通过语言中的另一个进程或语法更可靠地处理? 请提供具体的场景或您的经验,简单地重复一本Java教科书,或者Finalize的预期用途是不够的,因为这不是本问题的意图。