黑马程序员技术交流社区
标题:
final关键字细节[分享]
[打印本页]
作者:
张少威
时间:
2012-6-4 12:37
标题:
final关键字细节[分享]
final使得被修饰的变量"不变",但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身的不变,和引用指向的对象不变。
1
@Test
2
public
void
test02() {
3
final
StringBuffer strbuf01 =
new
StringBuffer(
"0000"
);
4
final
StringBuffer strbuf02 =
new
StringBuffer(
"1111"
);
5
strbuf01 = strbuf02;
//无法通过编译
6
strbuf01.append(
"2222"
);
//可以通过编译
7
}
以上代码验证:
final只对引用的“值”(也即它所指向的那个对象的内存地址)有效,它迫使引用只能指向初始指向的那个对象,改变它的指向会导致编译期错误。至于它所指向的对象的变化,final是不负责的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2