final关键字细节

时间:2014-07-22 23:15:56   收藏:0   阅读:344
final使得被修饰的变量"不变",但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身的不变,和引用指向的对象不变。
@Test
public void test02() {
    final StringBuffer strbuf01 = new StringBuffer("0000");
    final StringBuffer strbuf02 = new StringBuffer("1111");
    strbuf01 = strbuf02;    //无法通过编译
    strbuf01.append("2222");    //可以通过编译
}
 
以上代码验证:
    final只对引用的“值”(也即它所指向的那个对象的内存地址)有效,它迫使引用只能指向初始指向的那个对象,改变它的指向会导致编译期错误。至于它所指向的对象的变化,final是不负责的。


来自为知笔记(Wiz)


final关键字细节,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!