Java面试:final, finally, finalize详解

版权申诉
0 下载量 9 浏览量 更新于2024-02-25 收藏 161KB DOC 举报
final, finally, finalize 这三个关键字在Java中有着不同的作用和用法。 首先,final是一个修饰符(关键字),用于声明一个类、方法或变量。当一个类被声明为final时,意味着它不能再被继承,不能有子类。这就是final类的特点,它是不可改变的、最终的类。而当变量或方法被声明为final时,意味着它们在使用中不可被改变,即它们的值或内容是不可变的。final变量可以在定义时直接赋值,或者在构造函数中赋值,但一旦赋值后就不能再改变。final方法同样只能使用,不能被重写(override)。因此,final的作用是为了让类、方法或变量成为不可改变的、最终的实体。 其次,finally是一个关键字,通常用在异常处理中的try-catch-finally块中。finally块中的代码会在try块中的代码执行完毕后无论是否发生了异常,都会被执行。它通常用来做一些清理工作,比如释放资源、关闭连接等。无论是否发生异常,finally块中的代码都会被执行,这就保证了资源的正确释放。 最后,finalize是一个方法名,用于在Java中进行垃圾回收之前执行必要的清理工作。在Java技术中,当对象被垃圾收集器确定为垃圾时,垃圾收集器会调用对象的finalize()方法进行清理工作,然后再将对象从内存中清除出去。这个方法的作用是让对象在被回收之前可以执行一些必要的清理工作,比如关闭文件、释放资源等。但需要注意的是,这个方法不是确定对象被回收的唯一方式,在实际应用中并不是特别可靠,因此不建议过度依赖finalize方法来进行资源的释放和清理。 总的来说,final是用来修饰类、方法或变量,让它们成为不可改变的、最终的实体;finally是用来做异常处理中的清理工作;finalize是在垃圾回收之前执行对象的清理工作。这三个关键字在Java中有着各自不同的作用,但都是为了让程序更稳定、更可靠地运行。