淺析Java中String與StringBuffer拼接的區(qū)別
學(xué)習(xí)筆記:
1、String拼接會(huì)創(chuàng)建一個(gè)新的String對(duì)象,存儲(chǔ)拼接后的字符串;
StringBuffer拼接是直接在本身拼接,會(huì)即時(shí)刷新。
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);<br> StringBuffer s3=sb1.append(sb2); StringBuffer s4=sb2.append(sb1); System.out.println("使用StringBuffer互相拼接:"+s3+":"+s4);<br> System.out.println("s3.append(s3):"+s3.append(s3)); //輸出結(jié)果為:s3.append(s3):abccbaabccba System.out.println("s3:"+s3); //輸出結(jié)果為:s3:abccbaabccba System.out.println(s1.concat(s2)==s1);//false,拼接會(huì)重新創(chuàng)建一個(gè)String(String的長(zhǎng)度是不可變的) System.out.println(s3.append(s1)==s3);//true,StringBuffer是對(duì)自己進(jìn)行操作會(huì)即時(shí)刷新 <br> int num=123; /*str1.concat(num);---此處報(bào)錯(cuò)*/ StringBuffer s5=s4.append(num); System.out.println("s5:"+s5); } }
輸出結(jié)果是:
使用concat互相拼接1:abccba:cbaabc
使用StringBuffer互相拼接1:abccba:cbaabccba
s3.append(s3):abccbaabccba s3:abccbaabccba false true s5:cbaabccba123
以上所述是小編給大家介紹的Java中String與StringBuffer拼接的區(qū)別,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
淺談Java之Map 按值排序 (Map sort by value)
下面小編就為大家?guī)?lái)一篇淺談Java之Map 按值排序 (Map sort by value)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08Java的Jackson庫(kù)中復(fù)雜對(duì)象集合的幾種簡(jiǎn)單轉(zhuǎn)換
本文主要介紹了Java的Jackson庫(kù)中復(fù)雜對(duì)象集合的幾種簡(jiǎn)單轉(zhuǎn)換。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02解決創(chuàng)建springboot后啟動(dòng)報(bào)錯(cuò):Failed?to?bind?properties?under‘spri
在Spring?Boot項(xiàng)目中,application.properties和application.yml是用于配置參數(shù)的兩種文件格式,properties格式簡(jiǎn)潔但不支持層次結(jié)構(gòu),而yml格式支持層次性,可讀性更好,在yml文件中,要注意細(xì)節(jié),比如冒號(hào)后面需要空格2024-10-10