`
sunlightcs
  • 浏览: 73282 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

String,StringBuffer,StringBuilder的区别

 
阅读更多
String是不可变的,StringBuffer是可变的且线程安全,StringBuilder也是可变的且线程非安全。从速度上来说,StringBuilder的速度最快,String最慢。

分析一下String为何是不可变的:
1.创建String的时候,会在内存中分配一块区域存放数据;
如:String str = new String("java");

2.如果想在str后面追加一段字符串时,不会在原来分配的内存区域追加,而会寻找一块新的内存区域来存放更多的字符串,追加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。

3.对StringBuffer、StringBuilder进行操作,是在原来的对象之上进行改变,而对String进行操作,是创建新的对象。
1
5
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics