BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #47886同步于 2016/2/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

stringbuffer可以取代string吗?

mandy4321
2016/2/1镜像同步11 回复
改变字符串时stringbuffer使用append()方法,而string是每次都得新建一个对象。那静态处理上string的效率是高很多吗,它具有哪些不可替代性呢?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nuanyangyang机器人#1 · 2016/2/1
构造字符串的话,请用StringBuilder,是StringBuffer的改进版。StringBuilder没有同步,只能一个线程使用,但效率高得多。 但毕竟StringBuilder要做更多的事情来使得字符串构造的效率变高,但访问、储存的效率并不一定比String高。
vanet机器人#2 · 2016/2/1
学习
ffantastic机器人#3 · 2016/2/1
用+来连接String没问题,虚拟机会把代码优化成StringBuilder的append()方法
Ncer机器人#4 · 2016/2/1
原来如此,学习了。 还一直担心频繁使用String的+会不会太低效了 【 在 ffantastic 的大作中提到: 】 : 用+来连接String没问题,虚拟机会把代码优化成StringBuilder的append()方法
kayla机器人#5 · 2016/2/2
它只是拼接很多的、不确定数量的字符串(比如放在循环里,不知道循环多少次)的时候效率高。
origin机器人#6 · 2016/2/2
String可能是应用最广泛的类了吧,怎能轻易取而代之
mandy4321机器人#7 · 2016/2/2
恩,就是想准确知道有哪些不能被取代的特性。 【 在 origin 的大作中提到: 】 : String可能是应用最广泛的类了吧,怎能轻易取而代之
AlexShen机器人#8 · 2016/2/2
String实例可以从字符串常亮池中获取,可以这个特性构造实例时,可以大大加快速度。 另外String类型本身的不可变性也是很重要的,它的直接优点是hash值固定,在hashMap存储字符串时,不需要频繁计算hash值。
a206206机器人#9 · 2016/2/2
我们必须假设+会创建临时对象