面试题1:String,StringBuffer,StringBuilder之间的区别
1、StringBuffer是线程同步安全的,数据安全,效率低。
StringBuilder不是线程同步安全的,数据不安全,效率高。
2、String的内容是不可改变的,StringBuffer和StringBuilder是可变序列。
3、StringBuffer中方法上有synchronized关键字。
面试题2:StringBuffer和数组的区别?
它们都可以被看作是一个容器,装一些数据。
但是,StringBuffer里面的数据都是一个一个字符
数组可以存放不同数据类型的数据,但是同一个数组只能存放同一种数据类型的数据。
public class StringBufferDemo8 {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
System.out.println("s1: " + s1 + ",s2: " + s2);
change(s1, s2);
System.out.println("s1: " + s1 + ",s2: " + s2);
System.out.println("========================================");
StringBuffer sb1 = new StringBuffer("hello");
StringBuffer sb2 = new StringBuffer("world");
System.out.println("sb1: " + sb1 + ",sb2: " + sb2);
change(sb1, sb2);
System.out.println("sb1: " + sb1 + ",sb2: " + sb2);
}
public static void change(StringBuffer sb1, StringBuffer sb2) {
sb1 = sb2;
sb2.append(sb1);
System.out.println("sb1: " + sb1 + ",sb2: " + sb2);
}
public static void change(String s1, String s2) {
s1 = s2;
s2 = s1 + s2;
System.out.println("s1: " + s1 + ",s2: " + s2);
}
}