java中String与StringBuffer拼接的区别

学习笔记:

  1、String拼接会创建一个新的String对象,存储拼接后的字符串;

    StringBuffer拼接是直接在本身拼接,会即时刷新。

  2.String只能拼接String类型的字符串;

    StringBuffer能够拼接所有的类型的值。

public class Test {
public static void main(String[] args) {
String str1="abc";
String str2="cba"; //使用Stirng的concat拼接
String s1=str1.concat(str2);
String s2=str2.concat(str1);
System.out.println("使用concat互相拼接:"+s1+":"+s2); //使用StringBuffer的append拼接
StringBuffer sb1=new StringBuffer(str1);
StringBuffer sb2=new StringBuffer(str2);

StringBuffer s3=sb1.append(sb2);
StringBuffer s4=sb2.append(sb1);
System.out.println("使用StringBuffer互相拼接:"+s3+":"+s4);
System.out.println("s3.append(s3):"+s3.append(s3)); //输出结果为:s3.append(s3):abccbaabccba
System.out.println("s3:"+s3);         //输出结果为:s3:abccbaabccba  
System.out.println(s1.concat(s2)==s1);//false,拼接会重新创建一个String(String的长度是不可变的)
System.out.println(s3.append(s1)==s3);//true,StringBuffer是对自己进行操作会即时刷新

          

          int num=123;
          /*str1.concat(num);---此处报错*/
          StringBuffer s5=s4.append(num);
          System.out.println("s5:"+s5);

	}

}

  输出结果是:

使用concat互相拼接1:abccba:cbaabc
使用StringBuffer互相拼接1:abccba:cbaabccba
s3.append(s3):abccbaabccba
s3:abccbaabccba
false
true
s5:cbaabccba123

  

上一篇:Ajax如何解决跨域问题


下一篇:SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串