青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

String與StringBuffer

StringStringBuffer的區別,網上資料可以說是數不勝數,但是看到這篇文章,感覺里面做的小例子很有代表性,所以轉一下,并自己做了一點總結。

java中有3個類來負責字符的操作。

1.Character 是進行單個字符操作的,

2.String 對一串字符進行操作。不可變類。

3.StringBuffer 也是對一串字符進行操作,但是可變類。

String:

是對象不是原始類型;為不可變對象,一旦被創建,就不能修改它的值;對于已經存在的String對象的修改都是重新創建一個新的對象,然后把新的值保存進去;String final,即不能被繼承。


StringBuffer:

是一個可變對象,當對他進行修改的時候不會像String那樣重新建立對象;它只能通過構造函數來建立(StringBuffer sb = new StringBuffer());不能通過付值符號對他進行付值(如:sb = "welcome to here!";//這樣是錯誤的);對象被建立以后,在內存中就會分配內存空間,并初始保存一個null.StringBuffer中付值的時候可以通過它的append方法(如:sb.append("hello"))。


字符串連接操作中StringBuffer的效率要比String:

eg
String str = new String("welcome to ");
str += "here";

其處理步驟實際上是通過建立一個StringBuffer,然后調用append(),最后
再將StringBuffer.toSting();這樣的話String的連接操作就比StringBuffer多出了一些附加操作,當然效率上要打折扣。

并且由于String 對象是不可變對象,每次操作Sting 都會重新建立新的對象來保存新的值.
這樣原來的對象就沒用了,就要被垃圾回收.這也是要影響性能的。

總結: 如果在程序中需要對字符串進行頻繁的修改連接操作的話.使用StringBuffer性能會更高。

另一處轉載:

String 類型和StringBuffer 類型的主要性能區別其實在于 String 是不可變的對象,因此在每次對 String 類型進行改變的時候其實都等同于生成了一個新的 String 對象,然后將指針指向新的 String 對象,所以經常改變內容的字符串最好不要用 String ,因為每次生成對象都會對系統性能產生影響,特別當內存中無引用對象多了以后, JVM GC 就會開始工作,那速度是一定會相當慢的。

而如果是使用 StringBuffer 類則結果就不一樣了,每次結果都會對 StringBuffer 對象本身進行操作,而不是生成新的對象,再改變對象引用。所以在一般情況下我們推薦使用 StringBuffer ,特別是字符串對象經常改變的情況下。而在某些特別情況下, String 對象的字符串拼接其實是被 JVM 解釋成了 StringBuffer 對象的拼接,所以這些時候 String 對象的速度并不會比 StringBuffer 對象慢,而特別是以下的字符串對象生成中, String 效率是遠要比 StringBuffer 快的:

       String S1 = “This is only a” + “ simple” + “ test”;

       StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”);

       你會很驚訝的發現,生成 String S1 對象的速度簡直太快了,而這個時候 StringBuffer 居然速度上根本一點都不占優勢。其實這是 JVM 的一個把戲,在 JVM 眼里,這個

       String S1 = “This is only a” + “ simple” + “test”; 其實就是:

       String S1 = “This is only a simple test”; 所以當然不需要太多的時間了。但大家這里要注意的是,如果你的字符串是來自另外的 String 對象的話,速度就沒那么快了,譬如:

String S2 = “This is only a”;

String S3 = “ simple”;

String S4 = “ test”;

String S1 = S2 +S3 + S4;

這時候 JVM 會規規矩矩的按照原來的方式去做, S1 對象的生成速度就不像剛才那么快了,一會兒我們可以來個測試作個驗證。

在大部分情況下    StringBuffer > String

StringBuilder JDK5.0 中新增加的一個類,它跟 StringBuffer 的區別看下面的介紹(來源 JavaWorld ):

Java.lang.StringBuffer 線程安全的可變字符序列。類似于 String 的字符串緩沖區,但不能修改。可將字符串緩沖區安全地用于多個線程。可以在必要時對這些方法進行同步,因此任意特定實例上的所有操作就好像是以串行順序發生的,該順序與所涉及的每個線程進行的方法調用順序一致。

       每個字符串緩沖區都有一定的容量。只要字符串緩沖區所包含的字符序列的長度沒有超出此容量,就無需分配新的內部緩沖區數組。如果內部緩沖區溢出,則此容量自動增大。從 JDK 5.0 開始,為該類增添了一個單個線程使用的等價類,即 StringBuilder 。與該類相比,通常應該優先使用 StringBuilder 類,因為它支持所有相同的操作,但由于它不執行同步,所以速度更快。

但是如果將 StringBuilder 的實例用于多個線程是不安全的。需要這樣的同步,則建議使用 StringBuffer


在大部分情況下    StringBuilder > StringBuffer

因此,根據這個不等式的傳遞定理: 在大部分情況下

StringBuilder > StringBuffer > String

 

posted on 2009-08-25 22:19 肥仔 閱讀(774) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲电影视频在线| 欧美日韩精品久久久| 欧美国产免费| 欧美成人免费va影院高清| 免费久久99精品国产自在现线| 久久激情综合网| 美国十次成人| 亚洲国产成人在线| 欧美激情一区二区三区| 日韩亚洲欧美成人一区| 小黄鸭视频精品导航| 久久综合亚州| 欧美午夜电影在线观看| 国产亚洲精品7777| 亚洲欧洲一区二区天堂久久| 99精品免费视频| 欧美一区二区三区四区在线观看地址| 久久精品最新地址| 亚洲黄色大片| 亚洲影院高清在线| 久热精品视频在线观看一区| 欧美日韩亚洲一区二区| 黄色一区二区三区四区| 亚洲午夜免费视频| 欧美a级一区| 亚洲综合色婷婷| 欧美精品二区| 一区二区三区在线高清| 亚洲影视中文字幕| 欧美第一黄网免费网站| 亚洲免费一级电影| 欧美日韩第一页| 亚洲国产精品视频一区| 欧美一区免费视频| 日韩特黄影片| 免费高清在线一区| 国产一区二区高清视频| 午夜精品影院| 一区二区免费看| 欧美精品久久天天躁| 伊人精品视频| 久久久久久伊人| 亚洲欧美国产毛片在线| 欧美视频在线一区| 一区二区三区四区五区精品视频| 久久综合国产精品| 欧美在线观看天堂一区二区三区| 国产精品久久久久久亚洲毛片| 亚洲乱码精品一二三四区日韩在线 | 蜜臀a∨国产成人精品| 猛男gaygay欧美视频| 欧美成人自拍视频| 久久久久一区| 国产精品有限公司| 亚洲在线一区| 亚洲精品一二| 欧美日韩一区在线播放| 亚洲精品在线三区| 亚洲国产成人久久综合| 欧美成人高清| 亚洲美女精品一区| 亚洲精品一区二区三区四区高清| 欧美福利一区二区| 一本一本大道香蕉久在线精品| 欧美激情精品久久久六区热门| 久久婷婷国产综合国色天香| 一区二区三区中文在线观看| 免费成人av在线| 免费成人高清| 在线视频精品| 亚洲一区二区在线免费观看视频| 国产精品美女久久福利网站| 午夜精品免费| 欧美中文字幕精品| 亚洲国产综合在线看不卡| 亚洲精品三级| 国产精品理论片| 久久嫩草精品久久久精品一| 美女久久一区| 亚洲午夜精品网| 欧美一级久久久| 亚洲国产91| 亚洲视频一区二区| 精品999成人| 日韩午夜电影| 激情综合网址| 一本色道久久精品| 国内精品福利| 亚洲日韩第九十九页| 国产九九精品视频| 欧美福利视频在线观看| 国产精品家庭影院| 欧美高清视频一二三区| 国产精品高清在线| 欧美gay视频激情| 国产精品久久二区二区| 另类酷文…触手系列精品集v1小说| 欧美国产精品久久| 欧美制服丝袜第一页| 欧美精品在线极品| 久久综合伊人77777尤物| 欧美视频久久| 欧美激情成人在线| 国产一区二区三区不卡在线观看| 亚洲日本视频| 在线不卡亚洲| 午夜精品短视频| 一区二区三区视频在线播放| 久久久久久久999精品视频| 亚洲自拍啪啪| 欧美久久九九| 亚洲第一在线综合在线| 国产亚洲午夜| 国产精品99久久久久久人| 久久激情网站| 久久影院午夜片一区| 亚洲无玛一区| 欧美大胆成人| 欧美国产精品人人做人人爱| 国产网站欧美日韩免费精品在线观看| 最新高清无码专区| 亚洲激情在线观看视频免费| 久久久久国产一区二区| 久久九九有精品国产23| 国产精品一二三视频| 亚洲天堂免费观看| 亚洲欧美不卡| 国产精品www| 亚洲天堂av图片| 亚洲在线黄色| 国产精品久久久久久久9999| 一区二区高清视频在线观看| 一区二区精品| 欧美三级乱人伦电影| 9色国产精品| 午夜精品久久久久久久99樱桃| 欧美另类综合| 日韩视频在线一区| 亚洲一区欧美一区| 国产精品一卡二卡| 亚洲欧美激情诱惑| 久久久久成人精品| 依依成人综合视频| 欧美高清视频一区二区| 亚洲精品在线免费| 亚洲自拍高清| 国产亚洲一区精品| 久久亚洲不卡| 亚洲经典在线看| 国产精品99久久久久久有的能看| 欧美午夜精品伦理| 欧美一区二区黄色| 欧美大胆a视频| 夜夜嗨网站十八久久| 国产精品久久久久久久第一福利| 香蕉国产精品偷在线观看不卡| 久久综合九色综合久99| 亚洲日本欧美日韩高观看| 欧美视频中文一区二区三区在线观看| 亚洲一区二区3| 免费影视亚洲| 亚洲一区二区免费看| 国产自产v一区二区三区c| 美日韩精品视频免费看| 中文国产一区| 欧美大片免费| 香蕉精品999视频一区二区| 一区二区视频欧美| 国产精品扒开腿做爽爽爽软件 | 韩国成人精品a∨在线观看| 老司机免费视频一区二区| 亚洲伦理中文字幕| 另类图片国产| 亚洲欧美一区二区激情| 亚洲高清免费| 国产精品丝袜xxxxxxx| 久久视频国产精品免费视频在线| 亚洲美女福利视频网站| 久久女同精品一区二区| 中文精品99久久国产香蕉| 国产日韩综合| 欧美精品v日韩精品v韩国精品v| 欧美一区二区三区免费视| 母乳一区在线观看| 中文国产成人精品| 亚洲国产精品www| 欧美一区亚洲一区| 99re6热只有精品免费观看| 好吊色欧美一区二区三区四区| 欧美日韩伦理在线| 美日韩在线观看| 久久精品成人欧美大片古装| 亚洲天堂男人| 日韩午夜在线电影| 亚洲国产成人久久| 欧美国产视频日韩| 毛片基地黄久久久久久天堂| 久久成人免费日本黄色| 亚洲综合三区| 亚洲性av在线|