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

Java?String類和StringBuffer類的區(qū)別介紹

 更新時(shí)間:2022年04月06日 17:01:11   作者:china_zyb  
這篇文章主要介紹了Java?String類和StringBuffer類的區(qū)別,?關(guān)于java的字符串處理我們一般使用String類和StringBuffer類有什么不同呢,下面我們一起來看看詳細(xì)介紹吧

 關(guān)于java的字符串處理我們一般使用String類和StringBuffer類

那么String類和StringBuffer類的區(qū)別在什么地方呢?

  • 1、String是不可變的、StringBuffer是可變的。在程序中如果定義String s = "this is a string".那么在以后的應(yīng)用中不能對(duì)s進(jìn)行任何修改只能進(jìn)行諸如subString等操作,如果想進(jìn)行改動(dòng)只能重新new一個(gè)string而不是對(duì)原來的s進(jìn)行改動(dòng).而對(duì)于StringBuffer卻是可以改變的,在程序中定義StringBuffer s ="This is a",對(duì)于StringBuffer可以使用append和insert等函數(shù),如s.append("string")結(jié)果就是s="This is a string".
  • 2、String類提供了一些方法,用來進(jìn)行字符串的比較。這個(gè)類實(shí)現(xiàn)了Object父類的equals()方法,用來比較兩種字符串的值是否相等。同時(shí)還增加了equalsIgnoreCase()方法可以忽略兩個(gè)字符串大小寫的區(qū)別。但是StringBuffer類并沒有實(shí)現(xiàn)Objcet類的Equals方法,所以不能用這個(gè)方法來比較兩個(gè)StringBuffer類的字符串是否相等。除了用equalse方法來比較兩個(gè)字符串外,還可以用==來比較字符串。與equalse方法不同的是,==不是比較兩個(gè)字符串的值是否相等,而是比較幾個(gè)字符串的引用是否指向同一個(gè)實(shí)例。
  • 3、StringBuffer的效率并不一定比string高,如對(duì)于String s1 ="This "+“is”+"a"+"string"和StringBuffer s2="":s2.append(""This");s2.append("is");s2.append("a");s2.append("string").測(cè)試發(fā)現(xiàn)前者明顯比后者效率高。原因是,在定義s1時(shí),編譯時(shí)即可使得s1="This is a string",而s2需要等到運(yùn)行時(shí)才能確定。
  • 4、當(dāng)然了,一般情況下,StringBuffer是要比String效率高些的

與包裝類相似,String類是不可以改變的,從而不能修改字符串的值,所以必須創(chuàng)建一個(gè)新的字符串來存放,每次都重新開辟了一個(gè)內(nèi)存空間。

如果字符串較少的話我們可以使用String 類,如果文件有幾百成千個(gè)字節(jié)又會(huì)怎么樣呢.

相反,我們提供另一個(gè)類Stingbuffer 來對(duì)字符串進(jìn)行操作。

String類常用方法:

 char charAt(int index);  返回index索引位置的字符

 int length(); 返回字符串的長度。

 String substring(int beginindex,int endindex)返回一個(gè)新的字符串,其值是beginindex索引位置到endindex索引位置。

 String trim(); 去除字符串兩邊的空格,并返回一個(gè)新的字符串。

 String toLowerCase(); 將字符串中的所以大寫字母轉(zhuǎn)換成小寫字母,已有大寫字母則不需要轉(zhuǎn)換,并返回一個(gè)新的字符串。

 String toUpperCase();String toLowerCase(); 將字符串中的所以小‘寫字母轉(zhuǎn)換成小寫字母,已有小寫字母則不需要轉(zhuǎn)換,并返回一個(gè)新的字符串。

 boolean equals(String str);本對(duì)象中的字符串與str對(duì)象字符串進(jìn)行比較(區(qū)分大小寫) 返回一個(gè)boolean值

 String replace(char oldChar, char newChar);將舊的字符串(oldChar)換成新的字符串(newChar)

String類方法:

 主要方法

 append();向字符串末尾添加數(shù)據(jù),而不像String類重新開辟空間存放新的內(nèi)容

 insert();根據(jù)方法的重載傳遞不同的參數(shù),在指定的位置對(duì)字符串進(jìn)行插入子字符串。

例:

?String str = "how ";

??str += "are ";

?str +="you";

 如果我們打印str的最終結(jié)果是how are you 是我們所期望的,內(nèi)存里面的變化:

 how

 how are

 how are you

 String類使用重載加法運(yùn)算符,在字符串表中創(chuàng)建新的條目,上面一共創(chuàng)建了三條。

 當(dāng)處理的字符串過多時(shí),上面的做法就很耗費(fèi)內(nèi)存。

?StringBuffer str = new StringBuffer("how");

?//向str末尾添加字符串

?str.append("are ");

?str.append( "you");

 將需要處理字符串交給StringBuffer類處理 ,

 每個(gè)字符串緩沖區(qū)都有一定的容量。只要字符串緩沖區(qū)所包含的字符序列的長度沒有超出此容量,

 就無需分配新的內(nèi)部緩沖區(qū)數(shù)組。如果內(nèi)部緩沖區(qū)溢出,則此容量自動(dòng)增大。而不是重新聲明新的對(duì)象

 這樣的話就不會(huì)耗費(fèi)內(nèi)存!

到此這篇關(guān)于Java String類和StringBuffer類的區(qū)別介紹的文章就介紹到這了,更多相關(guān)Java String類與StringBuffer類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot訪問templates html頁面過程詳解

    Springboot訪問templates html頁面過程詳解

    這篇文章主要介紹了Springboot訪問templates html頁面過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java數(shù)據(jù)結(jié)構(gòu)之KMP算法的實(shí)現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之KMP算法的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)中KMP算法的原理與實(shí)現(xiàn),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下
    2022-11-11
  • springboot項(xiàng)目如何部署到服務(wù)器

    springboot項(xiàng)目如何部署到服務(wù)器

    這篇文章主要介紹了springboot項(xiàng)目如何部署到服務(wù)器問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java String類型對(duì)象轉(zhuǎn)換為自定義類型對(duì)象的實(shí)現(xiàn)

    java String類型對(duì)象轉(zhuǎn)換為自定義類型對(duì)象的實(shí)現(xiàn)

    本文主要介紹了java String類型對(duì)象轉(zhuǎn)換為自定義類型對(duì)象的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 從零實(shí)現(xiàn)一個(gè)簡單的Spring Bean容器的代碼案例

    從零實(shí)現(xiàn)一個(gè)簡單的Spring Bean容器的代碼案例

    Spring是一個(gè)非常流行的Java?Web開發(fā)框架,它提供了強(qiáng)大的依賴注入、面向切面編程、聲明式事務(wù)管理等功能,為開發(fā)者提供了高效、快速地構(gòu)建Web應(yīng)用程序的工具,在這篇文章中,咱們將一步一步地構(gòu)建一個(gè)簡單的SpringBean容器,需要的朋友可以參考下
    2023-06-06
  • JAVA String.valueOf()方法的用法說明

    JAVA String.valueOf()方法的用法說明

    這篇文章主要介紹了JAVA String.valueOf()方法的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java中String類startsWith方法詳解

    Java中String類startsWith方法詳解

    這篇文章主要給大家介紹了關(guān)于Java中String類startsWith方法的相關(guān)資料,startsWith() 方法用于檢測(cè)字符串是否以指定的前綴開始,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)詳解

    java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)詳解

    Java.lang.String是Java的字符串類. Srting是一個(gè)不可變對(duì)象,下面這篇文章主要給大家介紹了關(guān)于java實(shí)戰(zhàn)小技巧之字符串與容器互轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Scala中Array和List的區(qū)別說明

    Scala中Array和List的區(qū)別說明

    這篇文章主要介紹了Scala中Array和List的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 學(xué)習(xí)SpringMVC——國際化+上傳+下載詳解

    學(xué)習(xí)SpringMVC——國際化+上傳+下載詳解

    本篇文章主要介紹了學(xué)習(xí)SpringMVC——國際化+上傳+下載,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
    2016-12-12

最新評(píng)論

德钦县| 独山县| 东丽区| 开原市| 上栗县| 金寨县| 孟州市| 伽师县| 江城| 商水县| 兴山县| 庆安县| 屏边| 彝良县| 衡阳县| 江孜县| 进贤县| 洪泽县| 武定县| 镇平县| 栾川县| 北安市| 安阳县| 即墨市| 昌平区| 安庆市| 德庆县| 铁岭县| 舞阳县| 个旧市| 承德县| 乌海市| 丽水市| 吉安市| 庆元县| 桐柏县| 钟祥市| 广东省| 厦门市| 额敏县| 浮梁县|