Sow nothing, reap nothing|

String和Stringbuffer的区别

相同点:

String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数组。这个String类提供了数值不可改变的字符串。

不同点:

而这个StringBuffer类提供的字符串进行修改。

String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true

而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(new StringBuffer(“abc”)的结果为false。

接着要举一个具体的例子来说明,我们要把1到100的所有数字拼起来,组成一个串。

StringBuffer sbf = new StringBuffer();
for(int i=0;i<100;i++)
{
	sbf.append(i);
}

上面的代码效率很高,因为只创建了一个StringBuffer对象,而下面的代码效率很低,因为创建了101个对象String str = new String();

for(int i=0;i< 100;i++)
{
	str = str + i;
}

结:StringBuffer只有当空间不够时才会开辟新的空间存储,所以不是每一次都更新地址。

在讲两者区别时,应把循环的次数搞成10000,然后用endTime-beginTime来比较两者执行的时间差异,最后还要讲讲StringBuilder与StringBuffer的区别。

String覆盖了equals方法和hashCode方法,而StringBuffer没有覆盖equals方法和hashCode方法,所以,将StringBuffer对象存储进Java集合类中时会出现问题。

本文作者:小魏同学呀

本文链接:https://www.cnblogs.com/weitongxue/p/15834284.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   小魏同学呀  阅读(266)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 Play AlanWalker
  2. 2 来迟 戴羽彤
来迟 - 戴羽彤
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

戴羽彤 - 来迟

作词:卡文

作曲:三珊

编曲:筱明

制作人:一寸光年团队

吉他:老田

录音师:庄柏鑫

录音棚:33studio

和声:赫拉Hera

混音:张鸣利、黄俊@iPauL

制作公司:一寸光年

OP:一寸光年

「未经著作权人许可 不得翻唱 翻录或使用」

『酷狗音乐人 • 星曜计划』

全方位推广,见证星力量!

就好像是场隔世经年的梦

醒来我早已失去你的影踪

而曾经的我总是懵懵懂懂

最后才明白何为情之所钟

我提起一腔孤勇向你飞驰

想说出我刻在心上的名字

可你已经向新的航道行驶

那条船不再有我的位置

我这一次终究还是来得太迟

错过了你 此后所有的故事

我酝酿好久却老得掉牙的诗

最后也没能拥有收信地址

我这一次终究还是来得太迟

不该出现 再插上一点说辞

这本就是我一厢情愿的固执

只是该如何忘记你的名字

宛如像一首绵延不绝的诗

把你带走只留下一道影子

如果你已经拥有新的开始

我会忘记这一百种可是

我这一次终究还是来得太迟

错过了你 此后所有的故事

我酝酿好久却老得掉牙的诗

最后也没能拥有收信地址

我这一次终究还是来得太迟

不该出现 再插上一点说辞

这本就是我一厢情愿的固执

只是该如何忘记你的名字

终究还是来得太迟

错过了你 此后所有的故事

我酝酿好久却老得掉牙的诗

最后也没能拥有收信地址

我这一次终究还是来得太迟

不该出现 再插上一点说辞

这本就是我一厢情愿的固执

只是该如何忘记你的名字