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

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>
            免费的成人av| 亚洲欧洲在线播放| 欧美激情成人在线| 久久国产天堂福利天堂| 夜夜夜久久久| 亚洲精品一区二区三区99| 久久综合网络一区二区| 国产无一区二区| 在线色欧美三级视频| 久久久国产精品一区二区三区| 99国产麻豆精品| 99热这里只有成人精品国产| 久久成人免费网| 一本色道久久| 亚洲欧美经典视频| 美女黄毛**国产精品啪啪| 欧美mv日韩mv国产网站app| 91久久精品国产91性色tv| 亚洲午夜精品一区二区| 欧美一区二区私人影院日本| 久久免费国产精品1| 欧美精品在线一区| 娇妻被交换粗又大又硬视频欧美| 午夜精品视频在线观看一区二区| 中文精品99久久国产香蕉| 亚洲在线成人| 亚洲国产成人av| 亚洲免费伊人电影在线观看av| 久久久久久自在自线| 亚洲福利精品| 久久久久久久久一区二区| 国产精品xxxxx| 一区二区动漫| 亚洲精品美女| 欧美午夜电影完整版| 日韩一级不卡| 亚洲精选国产| 欧美日韩情趣电影| 极品少妇一区二区| 欧美成人精品h版在线观看| 欧美呦呦网站| 伊人激情综合| 亚洲激情不卡| 欧美午夜片在线免费观看| 亚洲欧美国产高清| 一本色道久久综合精品竹菊 | 亚洲丁香婷深爱综合| 亚洲一区二区免费| 亚洲午夜精品视频| 国产欧美日韩精品一区| 欧美亚洲一区二区三区| 中文精品一区二区三区| 国产欧美91| 亚洲第一天堂无码专区| 欧美激情免费在线| 欧美中在线观看| 欧美二区在线| 久久精品理论片| 欧美精品一区二区三区蜜桃| 亚洲欧美国产精品专区久久| 久久久久免费| 午夜精品久久99蜜桃的功能介绍| 欧美制服丝袜第一页| 久久久久久尹人网香蕉| 亚洲在线成人| 欧美日韩精品一区二区三区| 久久久久久色| 国产女主播一区| 亚洲午夜久久久久久久久电影网| 欧美一区二区三区视频| 亚洲国内在线| 久久精品综合一区| 欧美专区在线观看| 国产精品伦理| 亚洲一区三区在线观看| 99国产精品久久久久久久成人热| 久久国产精品电影| 欧美日产在线观看| 亚洲精品乱码久久久久久按摩观| 国产欧美精品在线观看| 亚洲第一成人在线| 亚洲线精品一区二区三区八戒| 欧美三级电影网| 亚洲三级视频在线观看| 亚洲精品国久久99热| 欧美高清视频一区| 亚洲高清免费在线| 亚洲亚洲精品在线观看| 国产精品久久久久久久久免费 | 国产精品久久久久久久久久妞妞| 国产精品免费看片| 翔田千里一区二区| 久久在线精品| 亚洲特色特黄| 亚洲国产va精品久久久不卡综合| 欧美高清视频在线播放| 日韩午夜在线| 国产精品国产精品| 欧美一级片久久久久久久| 亚洲第一搞黄网站| 久久成人人人人精品欧| 亚洲人在线视频| 一区二区视频欧美| 国产日产欧产精品推荐色| 久久综合电影一区| 午夜精品剧场| 国内精品视频一区| 国产精品久久亚洲7777| 欧美精品日韩综合在线| 亚洲女人天堂av| 亚洲免费观看高清完整版在线观看熊 | 欧美诱惑福利视频| 亚洲福利国产| 免费日韩精品中文字幕视频在线| 欧美女激情福利| 老牛国产精品一区的观看方式| 亚洲欧美激情诱惑| 红桃视频成人| 亚洲天堂免费观看| 亚洲毛片av| 99国产精品久久久| 999在线观看精品免费不卡网站| 激情综合视频| 一区三区视频| 亚洲国产合集| 亚洲伊人网站| 揄拍成人国产精品视频| 亚洲二区精品| 亚洲私人黄色宅男| 性久久久久久久久| 久久亚洲国产成人| 亚洲人体1000| 午夜日本精品| 欧美高清日韩| 国产精品视频一区二区高潮| 国产欧美日韩综合精品二区| 国产一区二区三区在线观看免费视频| 亚洲每日在线| 久久久91精品国产一区二区三区 | 国产视频一区二区在线观看| 国产午夜精品理论片a级探花| 久久久久久久久蜜桃| 噜噜噜91成人网| 国产乱理伦片在线观看夜一区| 久久久亚洲人| 国产精品久久久久久模特 | 欧美 日韩 国产一区二区在线视频| 亚洲一区二区伦理| 欧美a级片一区| 亚洲电影免费观看高清完整版在线观看 | 久久精品国产综合| 亚洲一级二级在线| 欧美丝袜一区二区| 亚洲区一区二区三区| 美女任你摸久久| 午夜影视日本亚洲欧洲精品| 欧美午夜一区| 亚洲综合日韩| 中文在线一区| 国产精品天天看| 久久久久久综合网天天| 欧美在线视频一区二区| 国产亚洲福利一区| 欧美一区二区三区在线观看| 亚洲女同同性videoxma| 国产性猛交xxxx免费看久久| 午夜在线精品| 久久嫩草精品久久久精品| 亚洲经典一区| 亚洲精品久久久蜜桃| 欧美va天堂在线| 亚洲精品综合| 一区二区三区精品视频| 国产情人综合久久777777| 久久久久在线| 欧美精品在线观看91| 久久久www成人免费无遮挡大片| 亚洲欧美日韩专区| 久久久精品一区| 99精品视频免费观看视频| 亚洲一区二区在线免费观看视频| 亚洲精品久久久久久久久| 欧美激情aaaa| 欧美成人第一页| 亚洲一区二区高清| 美女精品视频一区| 欧美一区二区三区四区高清 | 亚洲精品系列| 久久久99精品免费观看不卡| 亚洲精品影院在线观看| 久久久噜噜噜久久中文字幕色伊伊| 久久这里只有| 销魂美女一区二区三区视频在线| 久久夜色精品国产欧美乱| 免费的成人av| 亚洲高清av| 亚洲精品综合久久中文字幕| 久久亚洲图片| 亚洲欧洲在线观看| 亚洲视频高清|