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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毛恩奇 中级黑马   /  2013-4-20 11:03  /  1341 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 毛恩奇 于 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);
        }
}

4 个回复

正序浏览
刚金波 发表于 2013-4-20 11:30
这其中有一个隐式的数据类型转换。在java中,要是某个字符串和某个变量一起(这个变量可能是数值型的数据也 ...

谢谢!!!
回复 使用道具 举报
这其中有一个隐式的数据类型转换。在java中,要是某个字符串和某个变量一起(这个变量可能是数值型的数据也可能是布尔型的数据)利用“+”号连接起来时,系统会主动对这个变量进行转换,会将其转换为字符串数据类型,然后再与原先的字符串连接起来。
这就能解答你的疑问了,sop("sb==sb1:"+(sb==sb1));这条语句的输出内容是一个字符串和一个boolean类型的值使用“+”连接起来的,系统会自动将boolean类型的值转换成了字符类型,所以这样输出是没问题的。而sop((sb==sb1))这条语句是向接收String类型参数的函数中传入了一个boolean类型的参数,明显是不行的。
希望对你有帮助
回复 使用道具 举报
段旭东 发表于 2013-4-20 11:07
答题开始:
问题:关于StringBuffer
答:小结:StringBuffer是相对于String的一个可变的类型,StringBuffer ...

sop("sb==sb1:"+(sb==sb1));这句为啥不能写 sop(sb==sb1);呢
回复 使用道具 举报
答题开始:
问题:关于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对象了。
具体的期待楼下补充!希望对您有所帮助
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马