Java入門到精通——基礎篇String StringBuffer StringBuilder效能PK

來源:互聯網
上載者:User

標籤:

一、概述
       字串的處理在java中我們經常要用到java提供了三個類來提供對字串的操作,String,StringBuffer,StringBuilder
String:固定長
StringBuffer:不固定長安全執行緒
Stringbuilder:不固定長線程不安全
二、效能PK

1.建立超大字串。

代碼:

public class StringOne {public static void main(String[] args) {String str="";StringBuffer strb=new StringBuffer();StringBuilder strbd=new StringBuilder();long startString=System.currentTimeMillis();for (int i = 0; i < 100000; i++) {str=str+i;}System.out.println("String add Time:"+(System.currentTimeMillis()-startString));long startStringBuffer=System.currentTimeMillis();for (int i = 0; i < 100000; i++) {strb.append(i);}System.out.println("StringBuffer add Time:"+(System.currentTimeMillis()-startStringBuffer));long startStringBuilder=System.currentTimeMillis();for (int i = 0; i < 100000; i++) {strbd.append(i);}System.out.println("StringBuilder add Time:"+(System.currentTimeMillis()-startStringBuilder));}}


:


2.字串常量的添加操作

代碼:

public class StringTwo {public static void main(String[] args) {long startString=System.currentTimeMillis();for (int i = 0; i < 100000000; i++) {String str="String"+"and"+"String"+"append";}System.out.println("String  Time:"+(System.currentTimeMillis()-startString));long startStringBuffer=System.currentTimeMillis();for (int i = 0; i < 100000000; i++) {StringBuffer strb=new StringBuffer();strb.append("String");strb.append("and");strb.append("String");strb.append("append");}System.out.println("StringBuffer  Time:"+(System.currentTimeMillis()-startStringBuffer));long startStringBuilder=System.currentTimeMillis();for (int i = 0; i < 100000000; i++) {StringBuilder strbdr=new StringBuilder();strbdr.append("String");strbdr.append("and");strbdr.append("String");strbdr.append("append");}System.out.println("StringBuilder  Time:"+(System.currentTimeMillis()-startStringBuilder));}}


:


三、總結

       通過上述的效能對比得出結論在我們構建超大字串的時候StringBuffer和StringBulder的表現比String的表現要好的很多不是一個數量級的而在字串常量的添加操作中String的表現比StringBuffer和StringBuilder的表現好,原因就在於在建立String類的比建立StringBuffer和StringBuilder使用的開銷小時間短,所以這三個類的用法各有千秋根據我們具體的業務去選擇用哪一個類。

Java入門到精通——基礎篇String StringBuffer StringBuilder效能PK

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.