String-vs-StringBuilder-vs-StringBuffer

2016/06/23 16:07
阅读数 88

String

String是不可变的对象,一旦创建就不能改变。String被存放在字符串常量池中,Java中每一个不可变对象都是线程安全的,所以String也是线程安全的。

性能:慢。

使用场景:常量声明,少量的变量运算。

StringBuffer

StringBuffer是可变的,我们可以改变它的值。new StringBuffer创建的对象被放在堆中,StringBuffer和StringBuiler有相同的方法,但是StringBuffer的每个方法都有synchronized,所以它是线程安全的,也因此在性能上不如StringBuilder。。

性能:很快。

使用场景:多线程中频繁的进行字符串操作。

StringBuilder

StringBuiler和StringBuffer相同,也是被存储在堆中,可以被修改,他们主要的不同就是StringBuilder不是线程安全的

性能:很快。

使用场景:不要求线程安全的频繁的进行字符串操作。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部