面试5 -- Java final,finally,finalize的区别
2016-02-19 12:07
344 查看
1) final:修饰符(关键字)
如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载
(2) finally:在异常处理时提供 finally 块来执行任何清除操作。
如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally块(如果有的话)。
(3) finalize:方法名。
Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
它是在 Object 类中定义的,因此所有的类都继承了它。
子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。
finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载
(2) finally:在异常处理时提供 finally 块来执行任何清除操作。
如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally块(如果有的话)。
(3) finalize:方法名。
Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
它是在 Object 类中定义的,因此所有的类都继承了它。
子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。
finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
相关文章推荐
- 几个ios面试题
- 面试4 -- Overload和Override的区别?
- 程序员应该掌握的 10 个搜索技巧
- 面试之Java多线程
- 漫谈程序员系列:咦,你也在混日子啊
- 面试3 -- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- 作为一个码农,你还需要了解什么?
- 三年程序员的实战开发经验之谈 — 做人做事
- 面试相关问题
- PHP程序员的技术成长规划(转载)
- Android工程师面试题大全
- PHP职业规划
- 【剑指Offer学习】【面试题36:数组中的逆序对】
- 面试题(二)
- 面试题(一)
- 码农十年连载四
- 关于PHP程序员解决问题的能力
- 程序员的安全感
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
- iOS面试题总结(超全)