黑马程序员技术交流社区

标题: 关键字区别 [打印本页]

作者: 周一川    时间: 2013-4-9 17:13
标题: 关键字区别
final, finally, finalize的区别。
作者: 熊永标    时间: 2013-4-9 17:21
本帖最后由 熊永标 于 2013-4-9 17:26 编辑

final是用修饰类,字段,方法等等
     final修饰类,类不能被继承.
        final修饰变量,变理变成了常量,其值只能在构造函数和代码块中初始化或者一申明明,就给定值,之后就不能改变其值了.
        final修饰方法是,方法不能被子类重写.
finally是异常处理的关键字,配合try合用,如
     try{
         //可能发生异常代码
      }catch(){
         //异常处理代码
      }finally{
         //不和是否发生异常,都会执行到这时
       }
    而finally可以不存在.如:
   try{
         //可能发生异常代码
      }catch(){
         //异常处理代码
      }
finalize是垃圾回收机制调用,用于确定是否有引用指向将要被清理的对象.如果确定没有引用,将在下一次启动垃圾回收时,被垃圾回器回收.
   
作者: hacket    时间: 2013-4-9 19:46

final,finally,finalize区别


final:修饰符(关键字)如果一个类被声明成final,意味它不能在派生出子类,不能作为父类被继承。因此一个类不能既被声明时final和abstract的。

如果将变量或时方法声明是final,可以保证它们在使用中不被改变。被声明成final的变量必须在声明时给出其初始值,而在以后的引用中只能被读取,不能被改变。被声明final的方法也只能使用不能覆盖,也就是说是常量。



finally:在异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配catch子句就会执行,然后控制块会进入finally块。



finalize:方法名。JAVA技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清除工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有类都继承了它。子类覆盖了finalize()方法以整理系统资源或执行其他工作。finalize()方法是垃圾收集器删除对象之前对这个对象调用的。


作者: Keith    时间: 2013-4-9 20:37
这三个没有任何关系,谈何区别^^^^^^
作者: 年轻的棒棒    时间: 2013-4-18 09:07
拜托啊,这不是外语啊,不是叫你比较形近词的啊!这三个领域不同啊,好像没什么共同点啊,基本上都是区别!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2