-----------java的StringBuffer可变字符串 和String的区别----------
StringBuffer是java.lang下的类,不能被继承
Java.lang下的类是不需要引入的
可变字符串:
StringBuffer概述+
StringBuffer:字符串缓冲区。
StringBuffer和String区别呢?
String一旦被创建后,值不能改变,如果参与了操作,引用发生变化,不是在原有的字符串上操作,而是新产生了一个字符串。
StringBuffer如果发生了变化,就是在原有的字符串上发生了改变,不会创建新的字符串,而且StringBuffer是线程安全的。
String s = “hello”;
S + = “world”;
System.out.println(s)//输出的是helloworld
StringBuffer:是线程安全的可变字符串。
StringBuffer b = “hello”;
B += “world”;//使用hello的空间追加world,不是新创建一个字符串。
System.out.println(s)//输出的是helloworld
StringBuffer线程安全图:
例子:
publicclass Test1 {
publicstaticvoidmain(String[] args) {
//创建可变字符串
StringBuffer sb = newStringBuffer();
//把可变字符串做追加
StringBuffer sb1 = sb.append(true);
//判断追加后的字符串地址
System.out.println(sb == sb1);
String str = "abc";
//字符串追加任何类型返回的都是字符串
String str1 = str + true;
System.out.println(str1);
//String字符串地址比较
System.out.println(str == str1);
}
}
结果:
true
abctrue
false