亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java中StringBuffer和StringBuilder_動力節點Java學院整理

2019-11-26 12:30:20
字體:
來源:轉載
供稿:網友

下面先給大家介紹下String、StringBuffer、StringBuilder區別,具體詳情如下所示:

StringBuffer、StringBuilder和String一樣,也用來代表字符串。String類是不可變類,任何對String的改變都 會引發新的String對象的生成;StringBuffer則是可變類,任何對它所指代的字符串的改變都不會產生新的對象。既然可變和不可變都有了,為何還有一個StringBuilder呢?相信初期的你,在進行append時,一般都會選擇StringBuffer吧!

先說一下集合的故事,HashTable是線程安全的,很多方法都是synchronized方法,而HashMap不是線程安全的,但其在單線程程序中的性能比HashTable要高。StringBuffer和StringBuilder類的區別也是如此,他們的原理和操作基本相同,區別在于StringBufferd支持并發操作,線性安全的,適 合多線程中使用。StringBuilder不支持并發操作,線性不安全的,不適合多線程中使用。新引入的StringBuilder類不是線程安全的,但其在單線程中的性能比StringBuffer高。

接下來,我直接貼上測試過程和結果的代碼,一目了然:

 public class StringTest {    public static String BASEINFO = "Mr.Y";    public static final int COUNT = 2000000;    /**    * 執行一項String賦值測試    */    public static void doStringTest() {      String str = new String(BASEINFO);      long starttime = System.currentTimeMillis();      for (int i = 0; i < COUNT / 100; i++) {        str = str + "miss";      }      long endtime = System.currentTimeMillis();      System.out.println((endtime - starttime)          + " millis has costed when used String.");    }    /**    * 執行一項StringBuffer賦值測試    */    public static void doStringBufferTest() {      StringBuffer sb = new StringBuffer(BASEINFO);      long starttime = System.currentTimeMillis();      for (int i = 0; i < COUNT; i++) {        sb = sb.append("miss");      }      long endtime = System.currentTimeMillis();      System.out.println((endtime - starttime)          + " millis has costed when used StringBuffer.");    }    /**    * 執行一項StringBuilder賦值測試    */    public static void doStringBuilderTest() {      StringBuilder sb = new StringBuilder(BASEINFO);      long starttime = System.currentTimeMillis();      for (int i = 0; i < COUNT; i++) {        sb = sb.append("miss");      }      long endtime = System.currentTimeMillis();      System.out.println((endtime - starttime)          + " millis has costed when used StringBuilder.");    }    /**    * 測試StringBuffer遍歷賦值結果    *    * @param mlist    */    public static void doStringBufferListTest(List<String> mlist) {      StringBuffer sb = new StringBuffer();      long starttime = System.currentTimeMillis();      for (String string : mlist) {        sb.append(string);      }      long endtime = System.currentTimeMillis();      System.out.println(sb.toString() + "buffer cost:"          + (endtime - starttime) + " millis");    }    /**    * 測試StringBuilder迭代賦值結果    *    * @param mlist    */    public static void doStringBuilderListTest(List<String> mlist) {      StringBuilder sb = new StringBuilder();      long starttime = System.currentTimeMillis();      for (Iterator<String> iterator = mlist.iterator(); iterator.hasNext();) {        sb.append(iterator.next());      }      long endtime = System.currentTimeMillis();      System.out.println(sb.toString() + "builder cost:"          + (endtime - starttime) + " millis");    }    public static void main(String[] args) {      doStringTest();      doStringBufferTest();      doStringBuilderTest();        List<String> list = new ArrayList<String>();      list.add(" I ");      list.add(" like ");      list.add(" BeiJing ");      list.add(" tian ");      list.add(" an ");      list.add(" men ");      list.add(" . ");        doStringBufferListTest(list);      doStringBuilderListTest(list);    }  } 

看一下執行結果:

2711 millis has costed when used String.
211 millis has costed when used StringBuffer.
141 millis has costed when used StringBuilder.
 I  like  BeiJing  tian  an  men  . buffer cost:1 millis
 I  like  BeiJing  tian  an  men  . builder cost:0 millis

從上面的結果可以看出,不考慮多線程,采用String對象時(我把Count/100),執行時間比其他兩個都要高,而采用StringBuffer對象和采用StringBuilder對象的差別也比較明顯。由此可見,如果我們的程序是在單線程下運行,或者是不必考慮到線程同步問題,我們應該優先使用StringBuilder類;如果要保證線程安全,自然是StringBuffer。從后面List的測試結果可以看出,除了對多線程的支持不一樣外,這兩個類的使用方式和結果幾乎沒有任何差別。

以上所述是小編給大家介紹的Java中StringBuffer和StringBuilder_動力節點Java學院整理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品精品国产| 国产在线观看不卡| 亚洲精品国产综合久久| 美女国内精品自产拍在线播放| 日韩www在线| 国产成人精品久久二区二区| 久久九九国产精品怡红院| 国产啪精品视频网站| 懂色av一区二区三区| 午夜精品www| 亚洲成人网在线观看| 欧美人与物videos| 日韩电影中文 亚洲精品乱码| 欧美贵妇videos办公室| 欧美野外猛男的大粗鳮| 国产精品手机播放| 欧美区在线播放| 亚洲国产三级网| 91系列在线观看| 久久大大胆人体| 久久91亚洲精品中文字幕| 久久免费高清视频| 国产不卡av在线免费观看| 国产亚洲精品久久久久动| 97久久超碰福利国产精品…| 久久久久久久久久婷婷| 中文字幕无线精品亚洲乱码一区| 亚洲福利视频在线| 2018中文字幕一区二区三区| 欧美大片免费观看在线观看网站推荐| 国产精品视频一区二区高潮| 日韩成人网免费视频| 国产精品久久久久久久午夜| 国产精品丝袜一区二区三区| 欧美亚洲视频在线看网址| 97碰碰碰免费色视频| 欧美激情免费看| 国产精品黄色影片导航在线观看| 久久999免费视频| 97在线看免费观看视频在线观看| 精品中文字幕在线观看| 海角国产乱辈乱精品视频| 亚洲欧洲国产一区| 97精品久久久中文字幕免费| 久久人人爽人人爽人人片亚洲| 日韩电影中文字幕av| 中文字幕久久久| 久久成年人视频| 亚洲免费中文字幕| 色综合老司机第九色激情| 久久综合网hezyo| 欧美日韩中文字幕综合视频| 欧美性xxxx极品高清hd直播| 国产一区二区日韩| 成人黄色片在线| 九九视频这里只有精品| 亚洲色图偷窥自拍| 在线电影中文日韩| 日韩中文字幕欧美| 久久久国产精品视频| 国产日韩在线看片| 亚洲a成v人在线观看| 国产98色在线| 成人在线视频福利| 国产日韩欧美日韩大片| 欧美色欧美亚洲高清在线视频| 成人观看高清在线观看免费| 中文字幕亚洲图片| 亚洲xxxx妇黄裸体| 国产精品美女久久| 亚洲第一福利在线观看| 欧美成人h版在线观看| 91夜夜未满十八勿入爽爽影院| 欧美大尺度激情区在线播放| 亚洲精品白浆高清久久久久久| 亚洲人成自拍网站| 国产精品久久久| 日本中文字幕成人| 国产精品欧美日韩一区二区| 欧美在线国产精品| 亚洲国语精品自产拍在线观看| 隔壁老王国产在线精品| 日韩福利伦理影院免费| 成人午夜在线观看| 欧美高跟鞋交xxxxxhd| 日韩欧美中文字幕在线播放| 欧美精品电影免费在线观看| 91精品视频免费| 92看片淫黄大片看国产片| 久久久久久久国产| 国产精品国内视频| 青草青草久热精品视频在线观看| 欧美日韩在线视频首页| 国内精品一区二区三区四区| 久久亚洲一区二区三区四区五区高| 青青青国产精品一区二区| 国产精品久久网| 欧美成人sm免费视频| 丝袜一区二区三区| 日韩a**站在线观看| 欧美激情一级精品国产| 精品国内自产拍在线观看| 欧美日韩中文在线观看| 一区二区福利视频| 久久久久久网站| 最近2019中文字幕一页二页| xxav国产精品美女主播| 宅男66日本亚洲欧美视频| 国产成人精品视| 亚洲精品成人久久久| 国产精品视频成人| 精品视频在线导航| 亚洲精品在线不卡| 91tv亚洲精品香蕉国产一区7ujn| 久久精品中文字幕电影| 久久国产精品电影| 亚洲级视频在线观看免费1级| 国产精品中文久久久久久久| 日韩国产欧美精品在线| 国产精品视频久久| 夜夜嗨av一区二区三区免费区| 国产成人+综合亚洲+天堂| www.国产精品一二区| 日韩av网站大全| 欧美日韩国产综合新一区| 色综合久久天天综线观看| 全亚洲最色的网站在线观看| 亚洲精品国产精品国产自| 国产一区二区三区日韩欧美| 上原亚衣av一区二区三区| 国产精品三级久久久久久电影| 日韩精品免费一线在线观看| 久久精品国产99国产精品澳门| 主播福利视频一区| 色先锋久久影院av| 国产成人自拍视频在线观看| 欧美色xxxx| 国产丝袜视频一区| 国产亚洲欧美一区| 欧美日韩一区二区在线播放| 亚洲а∨天堂久久精品喷水| 2019中文字幕在线| 在线亚洲国产精品网| 中文字幕精品在线视频| 亚洲视频一区二区| 欧美老女人性视频| 日韩精品在线免费播放| 国产欧美最新羞羞视频在线观看| 亚洲最大的成人网| 亚洲成人av在线| 精品二区三区线观看| 91精品国产高清| 国产日韩欧美另类| 欧美精品久久久久久久免费观看| 欧洲一区二区视频| 成人精品久久一区二区三区| 国产精品久久久久久av| 欧美性生交大片免费| 国产精品第一第二| 一区二区国产精品视频| 成人免费视频xnxx.com| 国产精品成人一区二区三区吃奶| 国产美女久久精品香蕉69| 欧美亚洲免费电影|