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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯佩 中级黑马   /  2013-1-20 10:33  /  2077 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

StringBuffer是一个容器,可以操作多个数据类型,这其中包括引用数据类型吗?为什么?

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 鼓励个

查看全部评分

5 个回复

倒序浏览
引用数据类型有啊!例如String。其他自定义类型如Person,Student这些不行。StringBuffer是一个用来动态创建字符串的容器。

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 陈丽莉 于 2013-1-20 10:54 编辑

      包括引用数据类型中的数组和StringBuffer类。
    原因如下:
      基本数据类型有:整数型、浮点型、字符型和布尔型;引用数据类型指的是:类、接口和数组。
    StringBuffer中可以存储的类型为:布尔量、字符、字符数组、双精度数、浮点数、整型数、长整型数对象类型的字符串字符串StringBuffer类等。
   

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 黑马张英涛 于 2013-1-20 11:14 编辑

你们看文档不够仔细呦, StringBuffer可以存放任何类型啊,但是,他存放的不是对象的实体,而是通过调用对象类的toString()方法得到的对象的字符串形式,然后将这个字符串存放在容器中,举个简单的例子:
  1. public class MyTest {        
  2.         public static void main(String[] args){
  3.                 StringBuffer sb = new StringBuffer();
  4.                 Person p = new Person();
  5.                 System.out.println(sb.append(p));
  6.         }
  7. }
  8. class Person {
  9.         @Override
  10.         public String toString() {
  11.                 return "person";
  12.         }        
  13. }
复制代码
文档上说的很清楚啊,看这个方法:
append
public StringBuffer append(Object obj)
Appends the string representation of the Object argument.
The argument is converted to a string as if by the method String.valueOf, and the characters of that string are then appended to this sequence.

参数:obj - an Object.
返回:a reference to this object.
另请参见:String.valueOf(java.lang.Object), append(java.lang.String)

他内部调用了String.valueOf(java.lang.Object)方法,而这个方法返回的就是obj.toString()。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
郁闷,我的代码框去不掉了
回复 使用道具 举报
本帖最后由 高浩 于 2013-1-20 12:29 编辑

StringBuffer 他是字符缓冲区,只能存储字符串,但是它功能很强大,什么样的基本数据类型都可以存,而且长度是可变的,存什么样的基本数据,都可以将其转换为字符串存入其中,但使用时要调用toString()方法,
还可以在里面的具体位置插入指定数据Insert()方法可以实现。

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9 赞一个!

查看全部评分

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