欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA中String類與StringBuffer類的區(qū)別

 更新時間:2021年04月26日 16:58:59   作者:令仔很忙  
這篇文章主要為大家詳細(xì)介紹了JAVA中String類與StringBuffer類的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在Java中有兩種字符串的操作:String類和StringBuffer類(緩沖字符串處理類)。

下面先簡單的說一下兩者的區(qū)別。

String類和StringBuffer類都提供了相應(yīng)的方法實現(xiàn)字符串的操作,但二者略有不同。

(1) String類

該類一旦產(chǎn)生一個字符串,其對象就不可變。String類的內(nèi)容和長度是固定的。如果程序需要獲得字符串的信息需要調(diào)用系統(tǒng)提供的各種字符串操作方法實現(xiàn)。雖然通過各種系統(tǒng)方法可以對字符串施加操作,但這并不改變對象實例本身,而是生成一個新的實例。系統(tǒng)為String類對象分配內(nèi)存,是按照對象所包含的實際字符數(shù)分配的。

(2) StringBuffer類

查了查Buffer這個詞,有緩沖的意思,這個類肯定有緩沖的功能。該類處理可變的字符串。如果要修改一個StringBuffer類的字符串,不需要再創(chuàng)建新的字符串對象,而是直接操作原來的串。該類的各種字符串操作方法與String類提供的方法不相同。系統(tǒng)為StringBuffer類分配內(nèi)存時,除去當(dāng)前字符所占的空間外,還提供另外的16個字符大小的緩沖區(qū)。每個StringBuffer對象都有一定的緩沖區(qū)容量,當(dāng)字符串大小沒有超過容量時,不會分配新的容量,當(dāng)字符串大小超過容量時,會自動增加容量。

下面來舉一些具體的實例

字符串的連接

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){
    //構(gòu)建一個緩沖字符串的對象sb
    StringBuffer sb=new StringBuffer("加特效!");
    //通過append方法,在這個對象后面添加一個新字符串
    sb.append(" Duang~~");
    System.out.println(sb);
  }
}

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

通過上面的例子不難看出,String類在進(jìn)行擴(kuò)展的時候,需要實例兩個對象,每個對象都會占用一定的內(nèi)存,而StringBuffer類就不需要再實例化一個新的類,只需要調(diào)用一個擴(kuò)展的方法就可以了。

還有一點(diǎn)StringBuffer類的內(nèi)存容量是可擴(kuò)展的。舉個具體的例子:

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

capacity()方法代表了字符串對象在內(nèi)存中,可以容納字符串的個數(shù)。如果想要擴(kuò)充內(nèi)存容量,可以使用方法ensureCapacity()。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 容器的快速失敗(fast-fail)機(jī)制

    java 容器的快速失敗(fast-fail)機(jī)制

    Java容器的快速失敗機(jī)制是一種在迭代過程中檢測并處理集合并發(fā)修改的特性,該機(jī)制適用于ArrayList、HashMap等集合類,本文就來介紹一下java 容器的快速失敗(fast-fail)機(jī)制,感興趣的可以了解一下
    2024-11-11
  • SpringBoot如何引入緩存提高單次查詢數(shù)據(jù)效率

    SpringBoot如何引入緩存提高單次查詢數(shù)據(jù)效率

    這篇文章主要介紹了SpringBoot如何引入緩存提高單次查詢數(shù)據(jù)效率問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java實現(xiàn)批量操作Excel的示例詳解

    Java實現(xiàn)批量操作Excel的示例詳解

    在操作Excel的場景中,通常會有一些針對Excel的批量操作,以GcExcel為例,為大家詳細(xì)介紹一下Java是如何實現(xiàn)批量操作Excel的,需要的可以參考一下
    2023-07-07
  • 如何將maven源改為國內(nèi)阿里云鏡像

    如何將maven源改為國內(nèi)阿里云鏡像

    在使用Maven打包Scala程序時,默認(rèn)是從位于國外的Maven中央倉庫下載相關(guān)的依賴,造成我們從國內(nèi)下載依賴時速度很慢,下面這篇文章主要給大家介紹了關(guān)于如何將maven源改為國內(nèi)阿里云鏡像的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 淺談MyBatis3 DynamicSql風(fēng)格語法使用指南

    淺談MyBatis3 DynamicSql風(fēng)格語法使用指南

    這篇文章主要介紹了淺談MyBatis3 DynamicSql風(fēng)格語法使用指南,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • String.replaceAll方法詳析(正則妙用)

    String.replaceAll方法詳析(正則妙用)

    這篇文章主要給大家介紹了關(guān)于String.replaceAll方法,正則妙用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率

    從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率

    這篇文章主要介紹了從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 淺試仿?mapstruct實現(xiàn)微服務(wù)編排框架詳解

    淺試仿?mapstruct實現(xiàn)微服務(wù)編排框架詳解

    這篇文章主要為大家介紹了淺試仿?mapstruct實現(xiàn)微服務(wù)編排框架詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • java設(shè)計模式—靜態(tài)代理模式(聚合與繼承方式對比)

    java設(shè)計模式—靜態(tài)代理模式(聚合與繼承方式對比)

    下面小編就為大家?guī)硪黄猨ava設(shè)計模式—靜態(tài)代理模式(聚合與繼承方式對比)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 解決springmvc+mybatis+mysql中文亂碼問題

    解決springmvc+mybatis+mysql中文亂碼問題

    這篇文章主要介紹了解決java中springmvc+mybatis+mysql中文亂碼問題的相關(guān)資料,需要的朋友可以參考下
    2015-09-09

最新評論