<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      String、StringBuffer與StringBuilder之間區別

        最近學習到StringBuffer,心中有好些疑問,搜索了一些關于String,StringBuffer,StringBuilder的東西,現在整理一下。

      關于這三個類在字符串處理中的位置不言而喻,那么他們到底有什么優缺點,到底什么時候該用誰呢?下面我們從以下幾點說明一下

        1.三者在執行速度方面的比較:StringBuilder >  StringBuffer  >  String

        2.String <(StringBuffer,StringBuilder)的原因

          String:字符串常量

          StringBuffer:字符創變量

          StringBuilder:字符創變量

          從上面的名字可以看到,String是“字符創常量”,也就是不可改變的對象。對于這句話的理解你可能會產生這樣一個疑問  ,比如這段代碼:

      1 String s = "abcd";
      2 = s+1;
      3 System.out.print(s);// result : abcd1

       

             我們明明就是改變了String型的變量s的,為什么說是沒有改變呢? 其實這是一種欺騙,JVM是這樣解析這段代碼的:首先創建對象s,賦予一個abcd,然后再創建一個新的對象s用來    執行第二行代碼,也就是說我們之前對象s并沒有變化,所以我們說String類型是不可改變的對象了,由于這種機制,每當用String操作字符串時,實際上是在不斷的創建新的對象,而原來的對象就會變為垃圾被GC回收掉,可想而知這樣執行效率會有多底。

           而StringBuffer與StringBuilder就不一樣了,他們是字符串變量,是可改變的對象,每當我們用它們對字符串做操作時,實際上是在一個對象上操作的,這樣就不會像String一樣創建一些而外的對象進行操作了,當然速度就快了。

        3.一個特殊的例子:

      1 String str = “This is only a” + “ simple” + “ test”;
      3 StringBuffer builder = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”);

       

        

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

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

          其實就是:

          String str = “This is only a simple test”;

          所以不需要太多的時間了。但大家這里要注意的是,如果你的字符串是來自另外的String對象的話,速度就沒那么快了,譬如:

          String str2 = “This is only a”;

          String str3 = “ simple”;

          String str4 = “ test”;

          String str1 = str2 +str3 + str4;

          這時候JVM會規規矩矩的按照原來的方式去做。

        4.StringBuilder與 StringBuffer

          StringBuilder:線程非安全的

          StringBuffer:線程安全的

          當我們在字符串緩沖去被多個線程使用是,JVM不能保證StringBuilder的操作是安全的,雖然他的速度最快,但是可以保證StringBuffer是可以正確操作的。當然大多數情況下就是我們是在單線程下進行的操作,所以大多數情況下是建議用StringBuilder而不用StringBuffer的,就是速度的原因。

       

                 對于三者使用的總結: 1.如果要操作少量的數據用 = String

                              2.單線程操作字符串緩沖區 下操作大量數據 = StringBuilder

                              3.多線程操作字符串緩沖區 下操作大量數據 = StringBuffer

       

                偶是初學者,只是總結了自己學習的東西,難免寫的東西里有別人的,學習是記憶的過程,這些東西只是用來學習罷了,有些東西可能不對,希望各位給予指正。

       

      posted @ 2010-04-13 21:17  純粹的郭子  閱讀(359446)  評論(27)    收藏  舉報
      主站蜘蛛池模板: 国产成人综合色就色综合| 国产精品深夜福利免费观看 | 亚洲精品乱码久久观看网| 亚洲国产99精品国自产拍| 国产中文字幕久久黄色片| 日日碰狠狠添天天爽超碰97| 国产精品美女一区二三区| 白嫩少妇bbw撒尿视频| 久久精品国产99亚洲精品| 116美女极品a级毛片| 中国女人熟毛茸茸A毛片| 在线观看人成视频免费| 亚洲欧美一区二区三区图片| 玩弄放荡人妻少妇系列| 亚洲精品漫画一二三区| 日本一区二区三区激情视频| 强奷漂亮人妻系列老师| 巨胸美乳无码人妻视频漫画| 伦理片午夜视频在线观看| 精品无码国产日韩制服丝袜| 国产成人a在线观看视频| 免费看成人欧美片爱潮app| 亚洲熟妇自偷自拍另亚洲| 欧美肥老太牲交大战| 在线高清免费不卡全码| 久热久热中文字幕综合激情 | bt天堂新版中文在线| 亚洲精品国模一区二区| 国产精品爆乳奶水无码视频免费 | 精品国产一区二区三区av性色 | 平乡县| 精品黄色av一区二区三区| 武装少女在线观看高清完整版免费| 国产拍拍拍无码视频免费| 国产国产人免费人成免费| 国产精品入口麻豆| 久久精品亚洲国产综合色| 人妻中文字幕亚洲精品| 国产二区三区不卡免费| 激情文学一区二区国产区| 国产婷婷精品av在线|