final、finally、finalize 有什么区别?

final、finally、finalize 之间得区别如下:

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

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

3、finalize方法用于垃圾回收。一般情况下不需要我们实现finalize,当对象被回收的时候需要释放一些资源,比如socket链接,在对象初始化时创建,整个生命周期内有效,那么需要实现finalize方法,关闭这个链接。但是当调用finalize方法后,并不意味着GC会立即回收该对象,所以有可能真正调用的时候,对象又不需要回收了,然后到了真正要回收的时候,因为之前调用过一次,这次又不会调用了,产生问题。所以不推荐使用finalize方法

posted @ 2022-02-22 17:28  Erudite  阅读(538)  评论(0编辑  收藏  举报