亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字符串級聯:conat()vs“+”操作符

字符串級聯:conat()vs“+”操作符

幕布斯6054654 2019-06-06 15:45:10
字符串級聯:conat()vs“+”操作符假設字符串a和b:a += b a = a.concat(b)在引擎蓋下,它們是一樣的嗎?這里是作為參考的CONAT分解。我希望能夠將+操作符也能看到它的作用。public String concat(String s) {     int i = s.length();     if (i == 0) {         return this;     }     else {         char ac[] = new char[count + i];         getChars(0, count, ac, 0);         s.getChars(0, i, ac, count);         return new String(0, count + i, ac);     }}
查看完整描述

3 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

尼牙孜是正確的,但也值得注意的是,Java編譯器可以將特殊+操作符轉換為更有效的操作。Java有一個StringBuilder類,它表示一個非線程安全的可變字符串.當執行一串字符串連接時,Java編譯器會默默地進行轉換

String a = b + c + d;

String a = new StringBuilder(b).append(c).append(d).toString();

對于大型字符串來說,這樣做的效率要高得多。據我所知,當您使用conat方法時不會發生這種情況。

但是,當將空字符串連接到現有字符串時,CONAT方法更有效。在這種情況下,JVM不需要創建新的字符串對象,只需返回現有的字符串對象即可。看見CONAT文件來證實這一點。

因此,如果您非常關心效率,那么在連接可能為空的字符串時,應該使用conat方法,并使用+否則。但是,性能差異應該可以忽略不計,您可能永遠不應該擔心這一點。


查看完整回答
反對 回復 2019-06-06
  • 3 回答
  • 0 關注
  • 837 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號