String,StringBuilder,StringBuffer的区别


可变性
线程安全性
性能
String
使用 final 关键字数组保存字符串
private final char value[]
所以不可变
因为对象是不可变的,也就可以理解为常量,线程安全
String 发生一次改变,就要生成一个新的 String 对象,数据量大的时候,性能很低
StringBuilder
继承自 AbstractStringBuilder 类,没有 final 修饰,字符串对象是可变的
定义了字符串的基本操作,append、insert、等公共方法,线
对对象本身进行操作,性能高
StringBuffer
同 StringBuidler
StringBuilder 基础上,对方法加了同步锁,线
由于加了同步锁,比 StringBuilder 性能稍微低一些
总结:
1. 少量数据:String
2. 单线程,大量数据:StringBuilder
3. 多线程,大量数据:StringBuffer

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务