黑马程序员技术交流社区

标题: 集合 [打印本页]

作者: 权跃杰    时间: 2012-7-28 23:55
标题: 集合
StringBuffer和数组有什么区别?StringBuffe什么时候用?
作者: 马进    时间: 2012-7-28 23:59
StringBuffer顾名思义是一个字符串缓存,一般在拼接复杂字符串时使用,不定长,较灵活。
而数组,一方面数组个数会固定,而且只是把一组在逻辑上相关的String放到一起,起不到拼接作用。
作者: 田向向    时间: 2012-7-29 00:05
这个问题在历届论坛里很泛滥,你可以去搜一下http://search.itheima.com/   
视频里面也有介绍,
作者: 李志广    时间: 2012-7-29 00:09
这是一个比较常见的问题以下是两者的区别:
数组是存储一组相同类型数据的 ,java数组是定长的 .数组是一容器,可以装入多种数据类型,只要它们是相同的 .
StringBuffer类 它则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append、insert、reverse、setCharAt、setLength等方法可以改变这个字符串对象的字符序列。
一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString方法将其转换成为一个String对象。 如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高;
希望对你有所帮助!!!!!{:soso_e100:}

作者: 陈欢    时间: 2012-7-29 10:16
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,而且用它来作为应用是安全的
如果最后需要String,那么使用StringBuffer的toString()方法。如果你问的是从回收的角度上来讲的话,显然StringBuffer对内存的消耗要小的多,如果你用到了类似于我在上面那篇文章中举的例子:
String s="Hello Baidu";
s=new String("Hello Baidu");
s=s.concat("!");
在内存中会有两个空间是没有指向的,也不会被回收,因为它们都还不是Null.只有等到代码结束的时候才会被回收.
在我们小的程序中这样的开销还可以忽略,但是大型的工程中,大量的开销会对代码运行的速度带来很大的影响.






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