final、finally、finalize区别

 Final用于修饰类、成员变量和成员方法。final修饰的类,不能被继承(String、StringBuilder、StringBuffer、Math,不可变类),其中全部的方法都不能被重写,因此不能同时用abstract和final修饰类(abstract修饰的类是抽象类,抽象类是用于被子类继承的,和final起相反的做用);Final修饰的方法不能被重写,可是子类能够用父类中final修饰的方法;Final修饰的成员变量是不可变的,若是成员变量是基本数据类型,初始化以后成员变量的值不能被改变,若是成员变量是引用类型,那么它只能指向初始化时指向的那个对象,不能再指向别的对象,可是对象当中的内容是容许改变的。html

程序员

 

  Final修饰的形参,不能在方法中对形参赋值安全

Final修饰的局部变量和成员变量状况同样,一旦赋值,不可改变。ui

 

   方法内声明的类或者方法内的匿名内部类,访问该方法内定义的变量,该变量必需要用final修饰。当内部类访问局部变量时,会扩大局部变量的做用域,若是局部变量不用 final 修饰,咱们就能够在内部类中随意修改该局部变量值,并且是在该局部变量的做用域范围以外能够看到这些修改后的值,会出现安全问题。.net

参考:http://www.cnblogs.com/hapjin/p/5744478.htmlhtm

 

    Finally一般和try catch搭配使用,保证无论有没有发生异常,资源都可以被释放(释放链接、关闭IO流)。对象

    Finalize是object类中的一个方法,子类能够重写finalize()方法实现对资源的回收。垃圾回收只负责回收内存,并不负责资源的回收,资源回收要由程序员完成,Java虚拟机在垃圾回收以前会先调用垃圾对象的finalize方法用于使对象释放资源(如关闭链接、关闭文件),以后才进行垃圾回收,这个方法通常不会显示的调用,在垃圾回收时垃圾回收器会主动调用。blog

参考连接:继承

 

http://www.iteye.com/topic/484934内存

http://blog.csdn.net/carolzhang8406/article/details/6705831

相关文章
相关标签/搜索