当前位置: 移动互联网学院 > Android开发 > Android开发教程:Java中finalize,finally,final的区别
Android开发教程:Java中finalize,finally,final的区别 时间:2017-03-31     来源:Android开发学习网

Android初始阶段需要学习Java基础,在Java基础中final、finally、finalize是有区别的,Java中final、finally、finalize的区别与用法,也困扰了不少学习者,下面我们就这个问题进行一些探讨。

Finalize—方法名

此方法是Object类中的一个方法(所有类都有这个方法),是GC(garbage collertor)运行机制的一部分,是在GC清理它所从属的对象时被调用的,如果执行它的过成中抛出了无法捕获的异常,GC将终止对该对象的清理,并且该异常会被忽略,知道下一次GC开始清理这个对象时,它的Finalize()会被再次调用,调用他们的作用只是建议GC启动,清理无用对象释放内存空间,但GC的启动并不是一定的,这由java虚拟机来决定,直到java虚拟机停止运行。

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

Finally

在异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally 块(如果有的话)。只用在try-catch-finally语句中,不论有异常还是没有异常,这段语句终总被执行。

final—修饰符(关键字)

用于声明属性、方法和类。修饰的是基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;final修饰的方法不能被子类重写,但不影响子类的继承;final修饰的类不能被继承 。如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

以上就是对Java中final、finally、finalize的区别与用法的说明,更多Android开发知识,请继续关注华清远见教育科技集团。