String、StringBuilder和StringBuffer的区别和用法
分別使用使用這三種來拼接字符串,對比各自損耗的時間:
經(jīng)過測試:
結(jié)論:以后拼接字符串,統(tǒng)統(tǒng)使用StringBuffer/StringBuilder,不要使用String。
String和StringBuilder以及StringBuffer的區(qū)別:
StringBuffer和StringBuilder都表示可變的字符串,功能方法都是相同的。
唯一的區(qū)別(建議使用StringBuilder):
StringBuffer:StringBuffer中的方法都使用synchronized修飾符,表示同步的在多線程并發(fā)的時候可以保證線程安全,保證線程安全的時候,性能(速度)較低。
StringBuilder:StringBuilder沒有使用synchronized修飾符,不安全,但性能高。
StringBuilder sb = new StringBuilder ()等價于…new StringBuilder(16)(API可見..) 使用StringBUilder無參數(shù)的構(gòu)造器,在底層創(chuàng)建一個長度為16的char數(shù)組:
char[] value = new char[16];
此時該數(shù)組只能存儲16字符,如果超過了,得自動擴容:
自動擴容(創(chuàng)建長度更大得數(shù)組,再把之前得數(shù)組拷貝到新數(shù)組)
此時性能極低,一般得,我們事先知道大概需要存儲多少字符,在構(gòu)造器中就應(yīng)該設(shè)置。
//創(chuàng)建長度為80得字符數(shù)組
new StringBuilder(80);
總結(jié)
以上是生活随笔為你收集整理的String、StringBuilder和StringBuffer的区别和用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DP为王——动态规划法学习笔记
- 下一篇: 快速排序的实现--代码