要是finally修饰StringBuffer呢,是否可变呢....
弄错了吧,是 final 不是 finally吧
理论应该是可以变的,我没去查看过源码,这里要知道对引用类型来说,用final修饰的话只是表明我这个“变量”(或说引用),意思是只能够指向这个对象,但是对象里面的属性还是可以变的
应该是可以的,final修饰的是正的对象不能引用,而对象里面的字符串长短应该是可以变得
我看过的一个面试题:
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:
final StringBuffer a=new StringBuffer("immutable");
执行如下语句将报告编译期错误:
a=new StringBuffer("");
但是,执行如下语句则可以通过编译:
a.append(" broken!");
可以,那个是最终执行的代码,不是修饰符
final 修饰的 类,或者变量,只能 new 一次
但是可以继续修改
就是说,引用的地址不可以变,地址中的值可以变。
可以。引用不变,引用内容可变。