stringbuilder删除最后一个字符_Java类-StingBuffer,StringBuilder
Java提供了String,StringBuffr,StringBuilder類來封裝字符串,并提供了一系列操作字符串對(duì)象的方法.
他們的相同點(diǎn)都是封裝字符串;都實(shí)現(xiàn)了CharSeqence接口.
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable,CharSequnce
public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable,CharSeqence
他們之間的區(qū)別如下:
String類是一個(gè)不可變類,即創(chuàng)建String對(duì)象后,該對(duì)象中的字符串是不可改變的,直到這個(gè)對(duì)象被銷毀.StringBuffer與StringBuilder都繼承自AbstractStringBudiler類,在AbstractBuilder中也是使用字符數(shù)組保存字符串,是可變類.
由于String是可變類,適合在需要被共享的場(chǎng)合中是使用,當(dāng)一個(gè)字符串經(jīng)常被修改時(shí),最好使用Stringbuffer實(shí)現(xiàn).如果用String保存一個(gè)經(jīng)常被修改的字符串,該字符串每次修改時(shí)都會(huì)創(chuàng)建新的無用的對(duì)象,這些無用的對(duì)象會(huì)被垃圾回收器回收,會(huì)影響程序的性能.
當(dāng)創(chuàng)建String對(duì)象時(shí),可以利用構(gòu)造方法String str = new String(“Java”)的方式來對(duì)其進(jìn)行初始化,也可以直接用賦值的方式String s= “Java”來初始化.二StringBuffer只能使用構(gòu)造方式StringBuffer sb = new StringBuffer(“hello”)的方式初始化.
String字符串修改方法是首先創(chuàng)建一個(gè)StringBuffer,其次調(diào)用StringBuffer的append方法,最后調(diào)用StringBuffer的toString()方法把結(jié)果返回.
String實(shí)現(xiàn)了equals()方法和hashCode()方法,而StringBuffer沒有實(shí)現(xiàn)equals()方法和hashCode()方法
StringBuffer與StringBuilder都提供了一系列插入,追加,改變字符串里的字符序列的方法,他們的用法基本相同,知識(shí)StringBuilder是線程不安全的,StringBuffer是線程安全的,如果只是在單線程中使用字符串緩沖區(qū),則StringBuilder的效率會(huì)高些,但是當(dāng)多線程訪問時(shí),最好使用StringBuffer.
綜上所述,在執(zhí)行效率方面,StringBuilder最高,StringBuffer次之,String最低,對(duì)于這種情況,一般而言,如果要操作的數(shù)量比較小,應(yīng)優(yōu)先使用String類;如果是在單線程下操作大量數(shù)據(jù),應(yīng)優(yōu)先使用StringBuilder類;如果是在多線程下操作大量數(shù)據(jù),應(yīng)優(yōu)先使用StringBuffer類.
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的stringbuilder删除最后一个字符_Java类-StingBuffer,StringBuilder的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css背景从左到右颜色渐变,CSS:li
- 下一篇: 计算机学硕专业课可以自学吗,考研专业课怎