亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2022年04月06日 17:01:11   作者:china_zyb  
這篇文章主要介紹了Java?String類和StringBuffer類的區(qū)別,?關(guān)于java的字符串處理我們一般使用String類和StringBuffer類有什么不同呢,下面我們一起來(lái)看看詳細(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ì)原來(lái)的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類提供了一些方法,用來(lái)進(jìn)行字符串的比較。這個(gè)類實(shí)現(xiàn)了Object父類的equals()方法,用來(lái)比較兩種字符串的值是否相等。同時(shí)還增加了equalsIgnoreCase()方法可以忽略兩個(gè)字符串大小寫的區(qū)別。但是StringBuffer類并沒(méi)有實(shí)現(xiàn)Objcet類的Equals方法,所以不能用這個(gè)方法來(lái)比較兩個(gè)StringBuffer類的字符串是否相等。除了用equalse方法來(lái)比較兩個(gè)字符串外,還可以用==來(lái)比較字符串。與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è)新的字符串來(lái)存放,每次都重新開辟了一個(gè)內(nèi)存空間。

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

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

String類常用方法:

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

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

 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)處理的字符串過(guò)多時(shí),上面的做法就很耗費(fèi)內(nèi)存。

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

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

?str.append("are ");

?str.append( "you");

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

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

 就無(wú)需分配新的內(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)文章

最新評(píng)論