新手學JAVA(二)----String類與StringBuffer類的區別

來源:互聯網
上載者:User

標籤:java   string   stringbuffer   

在Java中有兩種字串的操作:String類和StringBuffer類(緩衝字串處理類)。
下面先簡單的說一下兩者的區別。
String類和StringBuffer類都提供了相應的方法實現字串的操作,但二者略有不同。

(1) String類
該類一旦產生一個字串,其對象就不可變。String類的內容和長度是固定的。如果程式需要獲得字串的資訊需要調用系統提供的各種字串操作方法實現。雖然通過各種系統方法可以對字串施加操作,但這並不改變對象執行個體本身,而是產生一個新的執行個體。系統為String類對象分配記憶體,是按照對象所包含的實際字元數分配的。

(2) StringBuffer類
查了查Buffer這個詞,有緩衝的意思,這個類肯定有緩衝的功能。該類處理可變的字串。如果要修改一個StringBuffer類的字串,不需要再建立新的字串對象,而是直接操作原來的串。該類的各種字串操作方法與String類提供的方法不相同。系統為StringBuffer類分配記憶體時,除去當前字元所佔的空間外,還提供另外的16個字元大小的緩衝區。每個StringBuffer對象都有一定的緩衝區容量,當字串大小沒有超過容量時,不會分配新的容量,當字串大小超過容量時,會自動增加容量。

下面來舉一些具體的執行個體

字串的串連

String類有兩種方法

第一種(“+”)

public class str{    public static void main(String[] args){            String str1="加特效!";            String str2="Duang~~";            System.out.println(str1+" "+str2);        }    }

第二種(”concat”)

public class str{    public static void main(String[] args){            String str1="加特效!";            String str2="Duang~~";            System.out.println(str1.concat(str2));        }    }

StringBuffer類的方法

public class str{    public static void main(String[] args){        //構建一個緩衝字串的對象sb        StringBuffer sb=new StringBuffer("加特效!");        //通過append方法,在這個對象後面添加一個新字串        sb.append(" Duang~~");        System.out.println(sb);    }}

最終輸出的結果都為:加特效! Duang~~

通過上面的例子不難看出,String類在進行擴充的時候,需要執行個體兩個對象,每個對象都會佔用一定的記憶體,而StringBuffer類就不需要再執行個體化一個新的類,只需要調用一個擴充的方法就可以了。

還有一點StringBuffer類的記憶體容量是可擴充的。舉個具體的例子:

public class str{    public static void main(String[] args){          //聲明字串對象sb            StringBuffer sb=new StringBuffer(40);            System.out.println(sb.capacity());      //輸出字串的容量capacity            sb.ensureCapacity(100);                 //擴充容量            System.out.println(sb.capacity());      //輸出字串的容量capacity        }    }

capacity()方法代表了字串對象在記憶體中,可以容納字串的個數。如果想要擴充記憶體容量,可以使用方法ensureCapacity()。

新手學JAVA(二)----String類與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.