Java中如何高效的拼接字串__效能最佳化

來源:互聯網
上載者:User

目錄

寫在前面 常規的字串拼接方法

寫在前面

這是一篇非常基礎的文章,將會示範如何使用Java正確高效的拼接字串。
這些問題也是我們應該注意的基礎的效能最佳化技巧。 常規的字串拼接方法 使用’+‘操作符連接字串

平時我們在開發中一般都是直接的這樣去拼接字串。

String newString = "Hello " + "World"; // Hello World

+’這個操作符代表將兩個字元變數的內容相加,也就是串連在一起。但是這個操作是很低效的,上面的例子中只有兩個字串的時候還不會感覺到什麼效能問題。但是如果是串連數十個甚至更多個字串的時候,你就知道了為什麼說這個操作符會影響效能。Effecti Java(第二版)中第51條中明確的說過,為串連n個字串而重複的使用字串串連操作符,需要n的平方級的時間。原因是因為Java中的String類型也就是字串設計為不可變的類型,並不支援動態擴充,所以n個字串被串連在一起的時候,它們的內容都要被拷貝,所以需要n的平方級的時間。 使用StringBuilder連接字串

為瞭解決上述的平方級的時間問題,我們可以使用Java提供的StringBuilder來拼接字串,本文不討論多線程問題,所以不會去比較StringBuilder和StringBuffer的區別,其實簡單的說,StringBuffer設計為安全執行緒的,適合多線程的使用,更多的相關知識可以參考其他文章。當然,字串的數量不多的時候,可以直接使用’+‘拼接,但是注意,就算拼接3個字串需要9次複製操作了,所以推薦2個以上可以考慮StringBuilder了。StringBuilder的操作需要的時間是線性增加的,因為調用StringBuilder.append方法不會去拷貝所有的字串。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.