字符串拼接+和concat的区别
生活随笔
收集整理的這篇文章主要介紹了
字符串拼接+和concat的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自 ?字符串拼接+和concat的區別
+和concat都可以用來拼接字符串,但在使用上有什么區別呢,先來看看這個例子。
public static void main(String[] args) {// example1String str1 = "s1";System.out.println(str1 + 100);//s1100System.out.println(100 + str1);//100s1 ? ?String str2 = "s2";str2 = str2.concat("a").concat("bc");System.out.println(str2);//s2abc ? ?// example2String str3 = "s3";System.out.println(str3 + null);//s3nullSystem.out.println(null + str3);//nulls3 ? ?String str4 = null;System.out.println(str4.concat("a"));//NullPointerExceptionSystem.out.println("a".concat(str4));//NullPointerException }concat源碼:
public String concat(String str) {int otherLen = str.length();if (otherLen == 0) {return this;}int len = value.length;char buf[] = Arrays.copyOf(value, len + otherLen);str.getChars(buf, len);return new String(buf, true); }看下生成的字節碼:
所以可以得出以下結論:
+可以是字符串或者數字及其他基本類型數據,而concat只能接收字符串。
+左右可以為null,concat為會空指針。
如果拼接空字符串,concat會稍快,在速度上兩者可以忽略不計,如果拼接更多字符串建議用StringBuilder。
從字節碼來看+號編譯后就是使用了StringBuiler來拼接,所以一行+++的語句就會創建一個StringBuilder,多條+++語句就會創建多個,所以為什么建議用StringBuilder的原因。
總結
以上是生活随笔為你收集整理的字符串拼接+和concat的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为云电脑配置详解?
- 下一篇: 怎么做简单的企业网站(怎么做简单的企业网