java基礎20 StringBuffer緩衝類

來源:互聯網
上載者:User

標籤:指定   time   tchar   原創   不可   開始   run   out   mem   

1、概要

    StringBuffer 其實就是一個儲存字元的容器

字串特點:字串是常量;它們建立之後不能更改了
字串一旦發生變化,那麼立馬建立一個新的對象。
注意:字串的內容不適合頻繁修改的,因為一旦修改馬上就會建立一個新的對象但是需要重複修改字串的內容,建議使用字串緩衝類(stringBuffer)

筆試題目:使用StringBuffer無參構造器建立一個對象時,預設初始容量多少?如果長度不夠使用,自動成長多少倍?        StringBuffer底層依賴字元數組才能儲存字元資料,該字串數組的預設初始容量是16,如果字元數組長度不夠用自動成長1倍
2、StringBuffer 與 StringBuillder的區別

2.1、相同點
    1.兩個類都是字串緩衝類
    2.兩個類的方法都是一樣的
2.2、不同點
    1.StringBuffer是安全執行緒的,操作效率低,StringBuillder是非安全執行緒的,操作效率高.
    2.StringBuffer出現jdk1.0的,StringBuillder是jdk1.5的時候出現的
推薦使用:StringBuillder,因為操作效率高.

3、StringBuffer和String的區別

    1、String對象是不可變的對象,當我們每次操作string都會重寫建立對象來儲存值
    2、StringBuffer對象一旦執行個體化,只對這一個對象操作

 1 package com.bw.string; 2  3 public class Demo4 { 4     public static void main(String[] args) { 5         String str="abc"; 6         StringBuffer sb=new StringBuffer("abc"); 7         Runtime runtime=Runtime.getRuntime(); 8         long startTime=System.currentTimeMillis(); 9         long startfreeMemory=runtime.freeMemory();10         for(int i=0;i<10000;i++){11             //str+=i; //運行結果:操作耗時:492ms,記憶體消耗:8161KB12             sb.append(i); //運行結果:操作耗時:10ms,記憶體消耗:147KB13            //重新再啟動並執行結果也是:StringBuffer的效率比String的高14         }15         long endfreeMemory=runtime.freeMemory();16         long endTime=System.currentTimeMillis();17         18         System.out.println("操作耗時:"+(endTime-startTime)+"ms,"+"記憶體消耗:"+(startfreeMemory-endfreeMemory)/1024+"KB");19     }20 }
4、StringBuffer下的常用方法(函數)4.1、容器具備的行為

 4.1.1、增加
      append(boolean b) :可以添加任意類型的資料到容器中
      insert(int offset, boolean b):指定插入的索引值,插入對應的內容
 4.1.2、刪除
     delete(int start, int end) :根據指定的開始與結束的索引值刪除對應內容
     deleteCharAt(int index):根據指定的索引刪除一個字元
 4.1.3、修改
     replace(int start, int end, String str) :
     reverse()
     setCharAt(int index, char ch) :
     substring(int start, int end) :
     ensureCapacity(int minimumCapacity):
4.1.4、查看
     indexOf(String str, int fromIndex) :
     lastIndexOf(String str, int fromIndex) :
     capacity() :
     length() :
     charAt(int index) :
     toString():

5、例子

 

 

 

 

 

 

 

 

原創DSHORE

出自:http://www.cnblogs.com/dshore123/

歡迎轉載,轉載務必說明出處。(如果本文對你有用,可以點擊一下右下角的 推薦,謝謝!)

java基礎20 StringBuffer緩衝類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.