黑马程序员技术交流社区

标题: 求数组和StringBuffer区别,以及各自的特点? [打印本页]

作者: 苏格拉底的弟子    时间: 2012-1-19 16:40
标题: 求数组和StringBuffer区别,以及各自的特点?
本帖最后由 苏格拉底的弟子 于 2012-1-30 22:06 编辑

求数组和StringBuffer区别,以及各自的特点? 什么时候该用什么呢?
作者: 沈样    时间: 2012-1-19 18:48
如果是String[]的话,可以存储String字符,StringBuffer 是string效率的一个提高,跟String差不多。数组是用来存储相当类型的数据,而StringBuffer就只是一个字符串,数组一般是用来对数组内的数据进行比较或者什么处理,StringBuffer是用于字符串的连接
作者: 孙玉伟    时间: 2012-1-19 22:26
首先,他们都是容器,都是用来存储数据的!
不同:String 对一串字符进行操作。不可变类;StringBuffer 也是对一串字符进行操作,但是可变类;
         String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
         StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();//不能用“=”赋值;
         字符串连接操作中StringBuffer的效率要比String高;
总结: 如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高;
希望能帮到你!

作者: 黄秋    时间: 2012-1-20 01:27
LS的是,String 与 StringBuffer 的区别吧。
数组和StringBuffer区别:
1.数组是存储一组相同类型数据的,StringBuffer只是一个字符串。
2.java数组是定长的,StringBuffer长度是可变的。
3.数组是一容器,可以装入多种数据类型,只要它们是相同的,如int,char,String;StringBuffer只能是:字符串。

当你要保存一组数据时,考虑数组;当要保存长度常变的字符串时,用StringBuffer。
作者: 戴振良    时间: 2012-1-21 16:56
想了解的更好,可以看张孝祥的视频:高级视频JavaAPI,好象里面第三个视频里有讲解
作者: 李杨    时间: 2012-1-31 02:12
如果在不是多线程的环境下还可以是StringBuilder它的效率比StringBuffer还要高,StringBuilder是多线不同步的,另一个是多线程环境同步的。就是说StringBuilder在多线程下是不安全的。




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