推广 热搜: 广场  Java  Word  app  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

java判断stringbuilder不为空 string、stringbuffer和stringbuilder有什么区别?

   2023-05-06 企业服务招财猫170
核心提示:string、stringbuffer和stringbuilder有什么区别?java中有三个类负责字符的操作。是一个单字符操作,对字符串进行操作。不可变类。它也对字符串进行操作,但它是可变的。Str

string、stringbuffer和stringbuilder有什么区别?

java中有三个类负责字符的操作。

是一个单字符操作,

对字符串进行操作。不可变类。

它也对字符串进行操作,但它是可变的。

String:

该对象不是原始类型。

作为不可变对象,一旦创建,其值就不能修改。

对现有字符串对象的任何修改都是创建一个新对象,然后保存新值。

String是最终类,也就是说,它不能被继承。

StringBuff:

是一个可变对象,当它被修改时,不会像String一样重新建立。

它只能由构造函数建立,

StringBuff:罐头公司。;不要通过支付价值符号来向他支付价值。

sb欢迎来到这里!//错误

对象建立后,会在内存中分配内存空间,最初会保存一个null。到StringBuff:

是一个变量对象,与StringBuff:。

字符串字符串新字符串(欢迎使用)

str在这里

其实的处理步骤就是建立一个StringBuffer,让侯调用append(),最后,

然后StringBuffertoSting()

这种情况下,String的连接操作会比StringBuffer多一些额外的操作,当然效率会打折扣。

而且因为String对象是不可变的,每次操作Sting都会重新建立一个新的对象来保存新的值。

这样原来的对象就没用了,会被垃圾回收,也会影响性能。

请看下面的代码:

26个英文字母被添加了5000次,

字符串tempstrabcdefghijklmnopqrstuvwxyz

int乘以5000

longlstart1()

字符串str

for(inti0ilttimesi){

strtempstr

}

长lend1()

长时间(lend1-lstart1)

(时间)

可惜我的电脑不是超级计算机,每次结果也不一定一样,一般是46687左右。

那是46秒。

让让我们再看一下下面的代码。

字符串tempstrabcdefghijklmnopqrstuvwxyz

int乘以5000

longlstart2()

StringBuffersbnewStringBuffer()

for(inti0ilttimesi){

(临时)

}

长lend2()

长时间2(lend2-lstart2)

(时间2)

结果是16,有时是0。

所以结论很明显,StringBuffer的速度几乎是String的一万倍。当然这个数据不是很准确。因为循环次数是10万,所以差别更大。如果你不喜欢,试试看。;不要相信我。

根据以上所述:

str在这里

其实的处理步骤就是建立一个StringBuffer,让侯调用append(),最后,

然后StringBuffertoSting()

所以这里的str可以等同于

新的字符串缓冲区

(此处)

str()

所以上面直接用来连接String的代码基本可以等价于下面的代码。

字符串tempstrabcd:需要在程序中频繁修改和连接字符串,使用StringBuff

string类和stringbuild类的区别为什么一定要有这两个类?

两个类的工作原理不同。:String类是传统的修改。改变字符串的,它确实可以完成将一个字符串添加到另一个字符串的工作,但是在。NET框架,这个操作真的不划算。因为系统先将两个字符串写入内存,然后删除原来的string对象,再创建一个String对象,读取内存中的数据并赋给它。来来去去花了很多时间。

在系统下使用StringBuilder类时,情况并非如此。文本名称空间。它提供的Append方法可以在已有对象的原位置修改字符串,简单直接。

如果要给一个字符串增加很多操作,StringBuilder类花费的时间和String类根本不是一个数量级。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8