Java中String和StringBuffer同时final类,为什么String不可变而StringBuffer是可变的,他们的区别在哪里

2024-12-03 10:30:34
推荐回答(4个)
回答1:

楼主概念错乱
final 表示这个类不能再被继承,并不是你理解的常量
String不可变是说String中用一个final 的char数组private final char value[];保存字符序列。
StringBuffer是缓冲区。她通过append("")方法追加字符串从来代替原字符串,所以StringBuffer可变

回答2:

String不可变是说String中用一个final 的char数组private final char value[];保存字符序列。

final修饰的类和这里的“可变” 定义没有一点关系。

final类只表示这个类不能被继承。

回答3:

String每次必须创建新的对象才能赋值,但是StringBuffer却不是这样的,StringBuffer可以通过append("")方法追加字符串从而替代原字符串,所以StringBuffer可变

回答4:

String类如果是被定义为final类型他定义的对象当然不能改变。StringBuffer只不过是缓冲区。不知道它的可变是什么意思,内容?其实详细的在java课本第7章有介绍