<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0
    那么為什么StringBuilder的性能比StringBuffer的高呢?這 則與線程安全有關。如果你讀過《Think in Java》,而且對里面描述HashTable和HashMap區別的那部分章節比較熟悉的話,你一定也明白了原因所在。對,就是支持線程同步保證線程安 全而導致性能下降的問題。HashTable是線程安全的,很多方法都是synchronized方法,而HashMap不是線程安全的,但其在單線程程 序中的性能比HashTable要高。StringBuffer和StringBuilder類的區別也在于此,新引入的StringBuilder類不 是線程安全的,但其在單線程中的性能比StringBuffer高。
    String str="You are nice.";
    str+="I love you so much.";
    如果用StringBuffer類的話,代碼如下:
    StringBuffer str= new StringBuffer("You are nice.");
    str.append("I love you so much.");
    從表面看來String類只用一個加號(+)便完成了字符串的拼接,而StringBuffer類卻要調用一個append()方法,是否實現起來更簡潔,更單純呢?其實不然,讓我們了解一下程序運行內部發生了哪些事情:Struts與Struts2的區別

    經編譯后程序的bytecode(字節碼)展示出了實質: 在用String類對象直接拼接時,JVM會創建一個臨時的StringBuffer類對象,并調用其append()方法完成字符串的拼接,這是因為 String類是不可變的,拼接操作不得不使用StringBuffer類(并且--JVM會將"You are nice."和"I love you so much."創建為兩個新的String對象)。之后,再將這個臨時StringBuffer對象轉型為一個String,代價不菲!可見,在這一個簡單 的一次拼接過程中,我們讓程序創建了四個對象:兩個待拼接的String,一個臨時StringBuffer,和最后將StringBuffer轉型成為 的String--它當然不是最初的str了,這個引用的名稱沒變,但它指向了新的String對象。

    而如果直接使用StringBuffer類,程序將只產生兩個對象:最初的StringBuffer和拼接時的String("I love you so much."),也不再需要創建臨時的StringBuffer類對象而后還得將其轉換回String對象。

    可以想象,當我們的字符串要被循環拼接若干段時,用String類直接操作會帶來多少額外的系統開銷,生成多少無用的臨時StringBuffer對象,并處理多少次無謂的強制類型轉換哪。 
    posted on 2011-07-11 09:43 墻頭草 閱讀(1340) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    人人游戲網 軟件開發網 貨運專家
    主站蜘蛛池模板: 亚洲成av人片不卡无码| 亚洲欧美中文日韩视频| 国产大片免费网站不卡美女| 国内精品久久久久影院亚洲| 免费大香伊蕉在人线国产| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 亚洲jizzjizz在线播放久| 国产精品免费看香蕉| 免费观看成人久久网免费观看| 亚洲AV无码一区二区三区牛牛| 精品国产香蕉伊思人在线在线亚洲一区二区| 日日麻批免费40分钟无码| 久久精品国产亚洲AV未满十八| 亚洲精品无码久久一线| 性感美女视频在线观看免费精品| 国产一二三四区乱码免费| 亚洲一卡2卡3卡4卡国产网站 | 免费v片在线观看视频网站| 杨幂最新免费特级毛片| 亚洲精品国产第1页| 怡红院亚洲怡红院首页| 久久久久国色AV免费看图片 | 国产一级在线免费观看| 亚洲熟女精品中文字幕| 久久国产亚洲精品麻豆| 国产免费变态视频网址网站| 最近免费中文字幕mv电影| 国产va免费观看| 亚洲男人的天堂网站| 日韩亚洲Av人人夜夜澡人人爽| 免费国产真实迷j在线观看| 丁香花免费完整高清观看| 99久久久国产精品免费牛牛| 牛牛在线精品观看免费正| 99久久婷婷国产综合亚洲| 亚洲视频在线观看视频| 国产亚洲一区二区三区在线| 亚洲av无码专区在线观看素人| AA免费观看的1000部电影| 57pao一国产成视频永久免费| 美女网站在线观看视频免费的|