java中String与StringBuffer拼接的区别
Posted 七月的风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于java中String与StringBuffer拼接的区别的主要内容,如果未能解决你的问题,请参考以下文章
java中的String,StringBuffer与StringBuilder
java中StringBuffer与String创建对象问题???
java中String StringBuilder 和 StringBuffer的联系与区别