黑马程序员技术交流社区

标题: 关于StringBuffer [打印本页]

作者: 毛恩奇    时间: 2013-4-20 11:03
标题: 关于StringBuffer
本帖最后由 毛恩奇 于 2013-4-20 11:54 编辑

class StringBufferDemo
{
        public static void main(String[] args)
        {
                StringBuffer sb=new StringBuffer();
                StringBuffer sb1=sb.append(34);
                sop("sb==sb1:"+(sb==sb1));//为什么这里不加"sb==sb1:"会报错呢,有类型转换?求详细解释。。。。
                sop(sb.toString());
                sop(sb1.toString());
        }
        public static void sop(String str)
        {
                System.out.println(str);
        }
}
作者: 段旭东    时间: 2013-4-20 11:07
答题开始:
问题:关于StringBuffer
答:
  1. StringBuffer类常用方法简介
  2. StringBuffer类用于处理可变的字符串,它提供修改字符串的方法。
  3. (1)构造方法:
  4. a. StringBuffer s0=new StringBuffer();分配了长16字节的字符缓冲区
  5. b. StringBuffer s1=new StringBuffer(512);分配了512字节的字符缓冲区
  6. c. StringBuffer s2=new StringBuffer("You are good!");
  7. 在字符缓冲区中存放字符串"Happy new year!",另外,后面再留了16字节的空缓冲区。
复制代码
小结:StringBuffer是相对于String的一个可变的类型,StringBuffer可以在原对象上进行加长或缩短等修改操作。适用于需要大量连接字串或拼接处理字串的情况,相应的情况下就不宜使用String对象了。
具体的期待楼下补充!希望对您有所帮助
作者: 毛恩奇    时间: 2013-4-20 11:16
段旭东 发表于 2013-4-20 11:07
答题开始:
问题:关于StringBuffer
答:小结:StringBuffer是相对于String的一个可变的类型,StringBuffer ...

sop("sb==sb1:"+(sb==sb1));这句为啥不能写 sop(sb==sb1);呢
作者: 刚金波    时间: 2013-4-20 11:30
这其中有一个隐式的数据类型转换。在java中,要是某个字符串和某个变量一起(这个变量可能是数值型的数据也可能是布尔型的数据)利用“+”号连接起来时,系统会主动对这个变量进行转换,会将其转换为字符串数据类型,然后再与原先的字符串连接起来。
这就能解答你的疑问了,sop("sb==sb1:"+(sb==sb1));这条语句的输出内容是一个字符串和一个boolean类型的值使用“+”连接起来的,系统会自动将boolean类型的值转换成了字符类型,所以这样输出是没问题的。而sop((sb==sb1))这条语句是向接收String类型参数的函数中传入了一个boolean类型的参数,明显是不行的。
希望对你有帮助
作者: 毛恩奇    时间: 2013-4-20 11:51
刚金波 发表于 2013-4-20 11:30
这其中有一个隐式的数据类型转换。在java中,要是某个字符串和某个变量一起(这个变量可能是数值型的数据也 ...

谢谢!!!




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