1.String(不可改变的字符串)、StringBuffer(可以改变的字符串)
这是小铭认为他们两个区别最大的一点,那么什么叫做不可改变的字符串呢?
(1)String给出下面代码:
public static void main(String[] args) {
String str1 = "abc";
String str2 = str1;
String str3 = str1 + "d";
System.out.println(str2 == str3);
}
控制台输出结果为:false
因为用String来创建的字符串更改的过程中会创建出新的字符串
通过结果也可以看出str3是重新开辟的一块字符串空间
(2)StringBuffer给出下面代码:
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = sb.append(true);
System.out.println(sb == sb1);
}
控制台输出结果为:true
由此可以看出,StringBuffer在该字符串进行更改时,是在同一块空间进行更改的
2.StringBuffer的线程相对String来说更加安全,但效率缓慢