A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 权跃杰 中级黑马   /  2012-7-28 23:55  /  1551 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

StringBuffer和数组有什么区别?StringBuffe什么时候用?

4 个回复

倒序浏览
StringBuffer顾名思义是一个字符串缓存,一般在拼接复杂字符串时使用,不定长,较灵活。
而数组,一方面数组个数会固定,而且只是把一组在逻辑上相关的String放到一起,起不到拼接作用。
回复 使用道具 举报
这个问题在历届论坛里很泛滥,你可以去搜一下http://search.itheima.com/   
视频里面也有介绍,
回复 使用道具 举报
这是一个比较常见的问题以下是两者的区别:
数组是存储一组相同类型数据的 ,java数组是定长的 .数组是一容器,可以装入多种数据类型,只要它们是相同的 .
StringBuffer类 它则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append、insert、reverse、setCharAt、setLength等方法可以改变这个字符串对象的字符序列。
一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString方法将其转换成为一个String对象。 如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高;
希望对你有所帮助!!!!!{:soso_e100:}
回复 使用道具 举报
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,而且用它来作为应用是安全的
如果最后需要String,那么使用StringBuffer的toString()方法。如果你问的是从回收的角度上来讲的话,显然StringBuffer对内存的消耗要小的多,如果你用到了类似于我在上面那篇文章中举的例子:
String s="Hello Baidu";
s=new String("Hello Baidu");
s=s.concat("!");
在内存中会有两个空间是没有指向的,也不会被回收,因为它们都还不是Null.只有等到代码结束的时候才会被回收.
在我们小的程序中这样的开销还可以忽略,但是大型的工程中,大量的开销会对代码运行的速度带来很大的影响.

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马