黑马程序员技术交流社区

标题: stringbuilder与string有什么区别呢? [打印本页]

作者: 鲜学良    时间: 2012-12-17 10:20
标题: stringbuilder与string有什么区别呢?
本帖最后由 鲜学良 于 2012-12-17 21:34 编辑

stringbuilder与string有什么区别呢?
作者: 李先洋    时间: 2012-12-17 10:24
StringBuilder可以随意更改字符串的长度,String会初始一个长度,但是更改会再次重新分配内存空间,性能损耗很大。对于需要频繁变动字符串长读的变量最好定义为StringBuilder。
作者: 黑马黄涛    时间: 2012-12-17 10:27
String类是不可变类,任何对String的改变都会引发新的String对象的生成...也就是内存多出一个对象...
而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象,这是两者最大的区别...
作者: 刘斌    时间: 2012-12-17 19:04
StringBuilder可以随意更改字符串的长度,存储空间的是动态扩展的,对其实例上做增删改,并不会重新分配存储空间。初始化一个StringBuilder 之后,它会自动申请一个默认的StringBuilder 容量(默认值是16)
String会初始一个长度,但是更改会再次重新分配内存空间,性能损耗很大。相当于一个常量,如果要改变它,实际上是新生成了一个实例,有新的存储空间。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2