String字符串鏈接符

    接觸Java到如今總的來講時間也不算短,發現身邊的一些朋友對String字符串鏈接符或多或少存在誤解(可能我理解的也不對,歡迎指正),隨便寫寫本身的一些觀點app

    Java對比C++少了運算符重載,字符串鏈接符"+"底層實現是經過StringBuffer和StringBuilder來實現的。在Java中拼接字符串要麼用字符串鏈接符"+",要麼用StringBuffer或StringBuilder,許多人糾結這兩種方式的效率問題。ui

    先說說下面的這種狀況:spa

    String str = "Hello "+"world "+"!";內存

    這種靜態字符串連接,編譯的時候編譯器會自動將之看做:String str = "Hello world !",比之以下代碼效率要高不少。字符串

    StringBuffer strBuffer = new StringBuffer();編譯器

    strBuffer.append("Hello ");編譯

    strBuffer.append("world ");效率

    strBuffer.append("!");時間

    對於動態字符串StringBuffer的效率比字符串鏈接符效率要高。字符

    strBuffer.append(String.valueOf(new Date()));比str=str+String.valueOf(new Date());執行效率和內存消耗都小不少。

    連接靜態字符串,建議用字符串鏈接符,連接動態字符串建議使用StringBuffer或StringBuilder。

相關文章
相關標籤/搜索