黑马程序员技术交流社区

标题: final finally finalize之间的区别。 [打印本页]

作者: Yaphets    时间: 2014-2-27 10:29
标题: final finally finalize之间的区别。
区别是什么
作者: 李白衣    时间: 2014-2-27 10:39
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

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

finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
作者: jkenny    时间: 2014-2-27 10:46
final :
final可以修饰类,方法,变量。
final修饰类不可以被继承,但是可以继承其他类。  
final修饰的方法不可以被覆写,但可以覆写父类方法。
final修饰的变量称为常量,这些变量只能赋值一次。
内部类在局部时,只可以访问被final修饰的局部变量。
final修饰的引用类型变量,表示该变量的引用不能变,而不是该变量的值不能变;

finally:
异常处理格式
try{
                //可能出异常的代码
}
catch(异常类  对象){
                //处理该异常类型的语句
}
finally {
                //一定会执行的代码
                //catch块使用System.exit(1);除外
}

finalize:
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。

就是作用不同而已,可能命名关键字时这些方法的作用,用final描述都合适把。





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