1、答案: final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。
接口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,
比如String和Integer。这样也使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。
final变量的值不能改变。
finalize()方法在一个对象被销毁和回收前会被调用。
finally,通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到finally块中完成。
2、
不管有木有出现异常,finally块中代码都会执行;
当try和catch中有return时,finally仍然会执行;
finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;
finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。 |