最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java_String和StringBuffer區(qū)別分析

 更新時(shí)間:2013年04月14日 10:45:46   作者:  
JAVA平臺(tái)提供了兩個(gè)類:String和StringBuffer,它們可以儲(chǔ)存和操作字符串,即包含多個(gè)字符的字符數(shù)據(jù)。這個(gè)String類提供了數(shù)值不可改變的字符串。

而這個(gè)StringBuffer類提供的字符串進(jìn)行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時(shí)候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來動(dòng)態(tài)構(gòu)造字符數(shù)據(jù)。

在java中有3個(gè)類來負(fù)責(zé)字符的操作。

1.Character 是進(jìn)行單個(gè)字符操作的,

2.String 對(duì)一串字符進(jìn)行操作。不可變類。

3.StringBuffer 也是對(duì)一串字符進(jìn)行操作,但是可變類。

String:
是對(duì)象不是原始類型.
為不可變對(duì)象,一旦被創(chuàng)建,就不能修改它的值.
對(duì)于已經(jīng)存在的String對(duì)象的修改都是重新創(chuàng)建一個(gè)新的對(duì)象,然后把新的值保存進(jìn)去.
String 是final類,即不能被繼承.

StringBuffer:
是一個(gè)可變對(duì)象,當(dāng)對(duì)他進(jìn)行修改的時(shí)候不會(huì)像String那樣重新建立對(duì)象
它只能通過構(gòu)造函數(shù)來建立,
StringBuffer sb = new StringBuffer();
note:不能通過付值符號(hào)對(duì)他進(jìn)行付值.
sb = "welcome to here!";//error
對(duì)象被建立以后,在內(nèi)存中就會(huì)分配內(nèi)存空間,并初始保存一個(gè)null.向StringBuffer
中付值的時(shí)候可以通過它的append方法.
sb.append("hello");

以上為摘抄,網(wǎng)上常見的,以下為自己添加的見解:

地址不可更改,長(zhǎng)度和內(nèi)容可改。append()方法是追加,超過預(yù)留內(nèi)存時(shí),內(nèi)存翻倍。

效率比較:StringBuffer比String高。因?yàn)镾tringBuffer有預(yù)留空間一直追加,只是對(duì)一個(gè)對(duì)象進(jìn)行操作。而String是不能被修改的,只能重復(fù)的去創(chuàng)建對(duì)象來實(shí)現(xiàn)修改。——如果頻繁的對(duì)字符串進(jìn)行追加、替換、修改、插入、刪除操作,最好使用StringBuffer。如果必須用String可以使用StringBuffer調(diào)用toString()來轉(zhuǎn)換成String即可。

復(fù)制代碼 代碼如下:

public static void main(String[] args) {
         String a="";
         long begin=System.currentTimeMillis();
         for (int i = 0; i <10000; i++) {
             a+=i;
         }
         long end=System.currentTimeMillis();
         System.out.println("String運(yùn)行時(shí)間:"+(end-begin));
         System.out.println("-----------------");
         StringBuffer b=new StringBuffer();
         long begin2=System.currentTimeMillis();
         for (int i = 0; i <10000; i++) {
             b.append(i);
         }
         long end2=System.currentTimeMillis();
         System.out.println("StringBuffer運(yùn)行時(shí)間:"+(end2-begin2));
     }

我的機(jī)子比較垃圾,執(zhí)行下來結(jié)果是

String運(yùn)行時(shí)間:164593
-----------------
StringBuffer運(yùn)行時(shí)間:31

而且String有contains方法,而StringBuffer沒有。contains是包含的意思,這里可以在回憶下contains方法

復(fù)制代碼 代碼如下:

 public static void main(String[] args) {
         String a="abc";
         boolean str=a.contains("b");
         System.out.println(str);
     }

執(zhí)行結(jié)果為

true

相關(guān)文章

  • Java使用FastExcel高效讀取和寫入Excel

    Java使用FastExcel高效讀取和寫入Excel

    FastExcel 是一個(gè) Java 庫,旨在高效地讀取和寫入 Excel 文件,它最初是 EasyExcel 的分叉版本,旨在提供增強(qiáng)的性能、持續(xù)維護(hù)和新功能,同時(shí)保持與原始 EasyExcel API 的兼容性,本文給大家介紹了Java如何使用FastExcel高效讀取和寫入Excel,需要的朋友可以參考下
    2025-11-11
  • Mybatis ResultType如何處理返回類型

    Mybatis ResultType如何處理返回類型

    這篇文章主要介紹了Mybatis ResultType如何處理返回類型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • IDEA使用JDK21控制臺(tái)亂碼問題及解決

    IDEA使用JDK21控制臺(tái)亂碼問題及解決

    在使用IntelliJ IDEA開發(fā)時(shí),經(jīng)常會(huì)遇到因編碼不一致導(dǎo)致的中文亂碼問題,特別是在JDK18以后的版本中,由于JDK內(nèi)部默認(rèn)編碼格式變?yōu)镚BK,而項(xiàng)目設(shè)置為UTF-8后,會(huì)導(dǎo)致亂碼問題,本文介紹了幾個(gè)步驟來解決這一問題
    2024-10-10
  • Java使用jxl庫輕松玩轉(zhuǎn)Excel表操作

    Java使用jxl庫輕松玩轉(zhuǎn)Excel表操作

    jxl?是一個(gè)非常實(shí)用的?Java?庫,專門用于操作?Excel?表格,這篇文章主要為大家介紹了如何使用jxl進(jìn)行Excel的基本操作,有需要的可以了解下
    2025-02-02
  • 劍指Offer之Java算法習(xí)題精講字符串與二叉搜索樹

    劍指Offer之Java算法習(xí)題精講字符串與二叉搜索樹

    跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • SpringBoot集成Lettuce客戶端操作Redis的實(shí)現(xiàn)

    SpringBoot集成Lettuce客戶端操作Redis的實(shí)現(xiàn)

    本文主要介紹了SpringBoot集成Lettuce客戶端操作Redis的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • java集合繼承關(guān)系圖分享

    java集合繼承關(guān)系圖分享

    這篇文章主要為大家詳細(xì)介紹了java集合繼承關(guān)系圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • java hasNextInt判斷是否為數(shù)字的方法

    java hasNextInt判斷是否為數(shù)字的方法

    今天小編就為大家分享一篇java hasNextInt判斷是否為數(shù)字的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • java簡(jiǎn)單模仿win10計(jì)算器

    java簡(jiǎn)單模仿win10計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了java簡(jiǎn)單模仿win10計(jì)算器de,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • java 中String.equals和==的比較

    java 中String.equals和==的比較

    這篇文章主要介紹了java 中String.equals和==的比較的相關(guān)資料,需要的朋友可以參考下
    2017-08-08

最新評(píng)論

高雄县| 秀山| 左贡县| 淅川县| 东阳市| 灵石县| 井研县| 岳西县| 保山市| 金乡县| 阿合奇县| 乃东县| 石景山区| 水富县| 伊金霍洛旗| 共和县| 达拉特旗| 大渡口区| 育儿| 锡林浩特市| 江陵县| 太湖县| 广水市| 固原市| 石河子市| 手游| 汉阴县| 卓尼县| 千阳县| 剑川县| 盐边县| 缙云县| 新昌县| 东乌珠穆沁旗| 山阴县| 大连市| 红原县| 宝山区| 吉木萨尔县| 镇宁| 信阳市|