<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # StringBuffer類 StringBuffer類 StringBuffer又稱為可變字符序列,它是一個類似于 String 的字符串緩沖區,通過某些方法調用可以改變該序列的長度和內容 StringBuffer是個字符串的緩沖區,即就是它是一個容器,容器中可以裝很多字符串。并且能夠對其中的字符串進行各種操作 StringBuffer進行字符串拼接的時候只能進行append,而string類是+ 我們查看StringBuffer類源碼,發現里面方法基本都加了synchronized ## String和StringBuffer區別 **String類** ~~~ public final class String implements java.io.Serializable, Comparable<String>, CharSequence ~~~ **StringBuffer類** ~~~ public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence ~~~ 發現String與StringBuffer都是CharSequence接口的子類.而在以后開發中,如果是CharSequence接口,那么應該清楚,只需要傳遞字符串即可 **CharSequence** ~~~ //向上轉型 CharSequence s = "Hello"; //String類覆寫的toString System.out.println(s); ~~~ 雖然String和StringBuffer類有著共同接口,但是這兩個類對象之間,如果要相互轉換不能直接轉換! **String轉換為StringBuffer** 方式一: 利用StringBuffer類的構造方法 ~~~ public StringBuffer(String str); ~~~ 方式二: 利用append()方法 ~~~ public StringBuffer append(String str); ~~~ **StringBuffer轉換為String** 利用toString()方法可以將StringBuffer轉換為String ~~~ StringBuffer buffer = new StringBuffer("hello"); String str = buffer.toString(); System.out.println(str); ~~~ # StringBuilder類 **在這方面運行速度快慢為:StringBuilder > StringBuffer > String** String為字符串常量,而StringBuilder和StringBuffer均為字符串變量, 即String對象一旦創建之后該對象是不可更改的,但后兩者的對象是變量,是可以更改的 **StringBuilder是線程不安全的,而StringBuffer是線程安全的** **String:適用于少量的字符串操作的情況 StringBuilder:適用于單線程下在字符緩沖區進行大量操作的情況 StringBuffer:適用多線程下在字符緩沖區進行大量操作的情況** # 方法 * Object: 它是所有類的超類,祖宗類。java中所有的類都直接或間接的繼承這個類 - 方法 public String toString() 返回當前對象中的內容, 對于Object類默認操作來說,返回的對象的類型+@+內存地址值 public boolean equals(Object obj) 比較兩個對象內容是否相同,對于Object類默認操作來說,比較的是地址值 StringBuffer/StringBuilder: 方法 ~~~ public StringBuffer append(String str) 在原有字符串緩沖區內容基礎上,在末尾追加新數據 public StringBuffer insert(int offset,String str) 在原有字符串緩沖區內容基礎上,在指定位置插入新數據 public StringBuffer deleteCharAt(int index) 在原有字符串緩沖區內容基礎上,刪除指定位置上的字符 public StringBuffer delete(int start,int end) 在原有字符串緩沖區內容基礎上,刪除指定范圍內的多個字符 public StringBuffer replace(int start,int end,String str)在原有字符串緩沖區內容基礎上,將指定范圍內的多個字符 用給定的字符串替換 public StringBuffer reverse() 將字符串緩沖區的內容 反轉 "abc"----"cba" public String substring(int start) 從指定位置開始,到末尾結束,截取該字符串緩沖區,返回新字符串 public String substring(int start,int end) 從指定位置開始,到指定位置結束,截取該字符串緩沖區,返回新字符串 ~~~ 創建一個字符串緩沖區對象。用于存儲數據。 ~~~ StringBuffer sb = new StringBuffer(); sb.append("haha"); //添加字符串 sb.insert(2, "it");//在指定位置插入 sb.delete(1, 4);//刪除 sb.replace(1, 4, "cast");//替換指定范圍內的內容 String str = sb.toString(); ~~~ # 注意 append、delete、insert、replace、reverse方法調用后,返回值都是當前對象自己, 所以說,StringBuffer它可以改變字符序列的長度和內容 # String,StringBuffer,StringBuilder區別 ~~~ public synchronized StringBuffer append(int i) ~~~ * String 字符串常量 不可變 使用字符串拼接時是不同的2個空間 * StringBuffer 字符串變量 可變 線程安全 字符串拼接直接在字符串后追加 * StringBuilder 字符串變量 可變 非線程安全 字符串拼接直接在字符串后追加 1. StringBuilder執行效率高于StringBuffer高于String. 2. String是一個常量,是不可變的,所以對于每一次+=賦值都會創建一個新的對象, StringBuffer和StringBuilder都是可變的,當進行字符串拼接時采用append方 法,在原來的基礎上進行追加,所以性能比String要高,又因為StringBuffer 是 線程安全的而StringBuilder是線程非安全的,所以StringBuilder的效率高于 StringBuffer. 3. 對于大數據量的字符串的拼接,采用StringBuffer,StringBuilder. Stringbuilder 執行效率要高于stringbuffer 更高于string String是變量 是不可變的 所以在在+ = 賦值的時候創建新的對象 Stringbuffer stringbuilder 倆個都是可變的,當在字符串拼接的時候可以采用appent方法,在原有的基礎上追加,所以性能比string 更高 ,有因為stringbuffer是現成安全的 but stringbuilder是線程非安全的 所以 stringbuilder比stringbuffer效率更低 對于大數據字符串拼接 可以采用stringbuffter 或是 stringbuilder
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看