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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王瀛 高级黑马   /  2013-6-5 16:34  /  1518 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王瀛 于 2013-6-5 16:46 编辑
  1. class StringBufferDemo
  2. {
  3.         public static void sop(Object obj)
  4.         {
  5.                 System.out.println(obj);
  6.         }
  7.         public static void delete()
  8.         {
  9.                 StringBuffer sb = new StringBuffer("abcdefg");
  10.                 sop(sb);//=======================>一
  11.                 sop(sb.toString());//=================>二
  12.         }
  13.         public static void main(String[] args)
  14.         {
  15.                 delete();
  16.         }
  17. }
复制代码
一、二部分都能打印出来StringBuffer中的字符串,有什么区别? 还是说 一中默认调用了toString()方法?

6 个回复

倒序浏览
没有区别,因为sb默认的调用了toString方法
回复 使用道具 举报
System.out.println(sb);时,它其实是自动调用sb.toString()方法,然后输出该方法返回的string字符串.跟StringBuffer和String没关系,是System.out.println自动调用
回复 使用道具 举报
4968547610317 发表于 2013-6-5 16:43
System.out.println(sb);时,它其实是自动调用sb.toString()方法,然后输出该方法返回的string字符串.跟Str ...

了解了,感谢~
回复 使用道具 举报
eycrckag 发表于 2013-6-5 16:40
没有区别,因为sb默认的调用了toString方法

知道了,谢谢~
回复 使用道具 举报
就打印上是没啥区别,但是调用应该就不一样了吧
sb表示的是一个容器
sb.toString()表示的是一个字符串,这里可以用一个字符串变量来接收。
看得出楼主应该是在复习了。加油!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马