String,StringBuffer,StringBuilder的区别_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > String,StringBuffer,StringBuilder的区别

String,StringBuffer,StringBuilder的区别

 2010/12/29 8:10:59  sunlightcs  http://juziku.javaeye.com  我要评论(0)
  • 摘要:String是不可变的,StringBuffer是可变的且线程安全,StringBuilder也是可变的且线程非安全。从速度上来说,StringBuilder的速度最快,String最慢。分析一下String为何是不可变的:1.创建String的时候,会在内存中分配一块区域存放数据;如:Stringstr=newString("java");2.如果想在str后面追加一段字符串时,不会在原来分配的内存区域追加,而会寻找一块新的内存区域来存放更多的字符串
  • 标签:区别
String是不可变的,StringBuffer是可变的且线程安全,StringBuilder也是可变的且线程非安全。从速度上来说,StringBuilder的速度最快,String最慢。

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

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

3.对StringBuffer、StringBuilder进行操作,是在原来的对象之上进行改变,而对String进行操作,是创建新的对象。
发表评论
用户名: 匿名