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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 苏格拉底的弟子 于 2012-1-30 22:06 编辑

求数组和StringBuffer区别,以及各自的特点? 什么时候该用什么呢?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

5 个回复

倒序浏览
如果是String[]的话,可以存储String字符,StringBuffer 是string效率的一个提高,跟String差不多。数组是用来存储相当类型的数据,而StringBuffer就只是一个字符串,数组一般是用来对数组内的数据进行比较或者什么处理,StringBuffer是用于字符串的连接

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
首先,他们都是容器,都是用来存储数据的!
不同:String 对一串字符进行操作。不可变类;StringBuffer 也是对一串字符进行操作,但是可变类;
         String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
         StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();//不能用“=”赋值;
         字符串连接操作中StringBuffer的效率要比String高;
总结: 如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高;
希望能帮到你!

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
LS的是,String 与 StringBuffer 的区别吧。
数组和StringBuffer区别:
1.数组是存储一组相同类型数据的,StringBuffer只是一个字符串。
2.java数组是定长的,StringBuffer长度是可变的。
3.数组是一容器,可以装入多种数据类型,只要它们是相同的,如int,char,String;StringBuffer只能是:字符串。

当你要保存一组数据时,考虑数组;当要保存长度常变的字符串时,用StringBuffer。

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
想了解的更好,可以看张孝祥的视频:高级视频JavaAPI,好象里面第三个视频里有讲解

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
如果在不是多线程的环境下还可以是StringBuilder它的效率比StringBuffer还要高,StringBuilder是多线不同步的,另一个是多线程环境同步的。就是说StringBuilder在多线程下是不安全的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马