返回信息流改变字符串时stringbuffer使用append()方法,而string是每次都得新建一个对象。那静态处理上string的效率是高很多吗,它具有哪些不可替代性呢?
这是一条镜像帖。来源:北邮人论坛 / java / #47886同步于 2016/2/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
stringbuffer可以取代string吗?
mandy4321
2016/2/1镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
构造字符串的话,请用StringBuilder,是StringBuffer的改进版。StringBuilder没有同步,只能一个线程使用,但效率高得多。
但毕竟StringBuilder要做更多的事情来使得字符串构造的效率变高,但访问、储存的效率并不一定比String高。
原来如此,学习了。
还一直担心频繁使用String的+会不会太低效了
【 在 ffantastic 的大作中提到: 】
: 用+来连接String没问题,虚拟机会把代码优化成StringBuilder的append()方法
String实例可以从字符串常亮池中获取,可以这个特性构造实例时,可以大大加快速度。
另外String类型本身的不可变性也是很重要的,它的直接优点是hash值固定,在hashMap存储字符串时,不需要频繁计算hash值。