老钟

并不是每一次雨后,都会有彩虹
posts - 14, comments - 4, trackbacks - 0, articles - 1

final,finally,finalize的区别

Posted on 2012-02-16 13:29 LaozhonG 阅读(189) 评论(0)  编辑  收藏 所属分类: 技术
1.final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承(为叶子类)。内部类要访问局部变量,局部变量必须定义成final类型。
    使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的(基本数据类型:值不变;而对象类型是引用不变)。改变了栈中的内容,而栈在堆中的地址并没有改变,也可以说指针是不变的。如:
   1 final StringBuffer sb = new StringBuffer("immutable"); 
   2 sb.append("is immutable");//这个是可以的,但是下面的这行语句是不行的,编译报错
   3 sb = new StringBuffer("a other immutable");
    另有在方法中有内部类,如果该方法中有对象变量的参数,此参变必须声明为final方可使用。
2.finally是异常处理语句结构的一部分,表示总是执行。

3.finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用。

------------------------------------------------------
About Me's
                ------一个喜欢在一块青石阶上独立行走的人

只有注册用户登录后才能发表评论。


网站导航: