春招时在参加某企业的面试时突然看到这道题,才猛然发现自己并不是掌握的太好······所以特此总结一下
一:final关键字
final可以修饰三样东西。分别是类、方法、变量。分别区分一下不同的用处
1:修饰类
如果一个类被声明为final,意味着它不能再派生新的子类,不能作为父类被继承。因此一个类不能及被声明为abstract,又被声明为final。当我们要让一个类永远不被继承我们就用final修饰类。
2:修饰方法
使方法无法在子类中重写。若父类中final方法的访问权限为private,将导致子类中不能直接继承该方法,也可以在子类中重新定义此方法,不会与其冲突(不叫重载)。
3:修饰变量
将变量或方法声明为final,可以保证他们使用中不被改变。被声明为final的变量必须在声明时给定初值,而以后的引用中只能读取,不可修改。类似C++中的const关键字。
二:finally关键字
finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,只要try中语句执行了不管有没有异常,这段语句最终一定会被执行,经常被用在需要释放资源的情况下。
三:finalize方法名
JAVA技术允许使用finalize()方法在垃圾收集器将对象从内存中清除之前做必要的清理工作。这个方法是在垃圾收集器在确定了,被清理对象没有被引用的情况下调用的。
finalize是在Object类中定义的,因此,所有的类都继承了它。子类可以覆盖finalize()方法,来整理系统资源或者执行其他清理工作。
【小知识点】final finally finalize区别
原文:https://www.cnblogs.com/BlakeHair/p/10491446.html