面試是經常被問到String
、StringBuilder
和StringBuffer
三者的速度有什么區別,經過測試后,這三者的執行速度關系是:StringBuilder > StringBuffer > String
,測試過程如下:
public class TestStringTools {public static void main(String[] args) {// 測試String速度System.out.println("String 開始時間"+System.currentTimeMillis());String testString = "test";for(int i=0; i<=100000; i++) {testString = testString + "第" + i + "個";}System.out.println("String 結束時間"+System.currentTimeMillis());// 測試StringBuilder速度System.out.println("StringBuilder 開始時間"+System.currentTimeMillis());StringBuilder testBuilder = new StringBuilder("test");for(int i=0; i<=10000000; i++) {testBuilder.append("第" + i + "個");}System.out.println("StringBuilder 結束時間"+System.currentTimeMillis());// 測試StringBuffer速度System.out.println("StringBuffer 開始時間"+System.currentTimeMillis());StringBuffer testBuffer = new StringBuffer("test");for(int i=0; i<=10000000; i++) {testBuffer.append("第" + i + "個");}System.out.println("StringBuffer 結束時間"+System.currentTimeMillis());}}
由于用 String
做字符串拼接實在太慢了,因此我們這里只進行10萬次
循環,而StringBuilder
和StringBuffer
進行1千萬次
循環,然后對結果進行比較:
String
進行10萬次字符串拼接,時間是:42354毫秒
;
StringBuilder
進行1千萬次字符串拼接,時間是:445毫秒
;
StringBuffer
進行1千萬次字符串拼接,時間是:755毫秒
。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态