String与StringBuffer之间的区别
String每次都是开创一个新的地址空间存储字符串
StringBuffer中的append方法是在原地址空间的基础上扩展字符串
程序举例,来自牛客网
package test;
public class TestRow {
/**
* java引用传递 StringBuffer
*/
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operator(a,b);
System.out.println(a+","+b);
}
public static void operator(StringBuffer x,StringBuffer y){
x.append(y);
y=x;
}
}
运行结果:AB,B
package test;
public class TestRow2 {
/**
* java引用传递 String,每次都是创建一个新的地址空间存储字符串
*/
public static void main(String[] args) {
String a = ("A");
String b = ("B");
operator(a,b);
System.out.println(a+","+b);
}
public static void operator(String x,String y){
x=x+y;
y=x;
}
}
运行结果:A,B
ps:StringBuffer是线程安全的,StringBuilder是线程不安全的