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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pizhihui 中级黑马   /  2015-6-9 21:34  /  292 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

打印语句 :System.out.println(st);System.out.println(st.toString());
       打印的内容一样,why?
①调用了PrintStream类中的println方法,此方法有valueOf方法
  1. public class PrintStream extends FilterOutputStream{
  2.     //调用了这个println方法
  3.     public void println(Object x) {
  4.         String s = String.valueOf(x);
  5.         synchronized (this) {
  6.             print(s);
  7.             newLine();
  8.         }
  9.     }
  10. }
复制代码

②接着调用了String类中的valueOf方法,此方法中就有toString方法(继承在Object类中)
  1. public final class String{
  2.     public static String valueOf(Object obj) {
  3.         return (obj == null) ? "null" : obj.toString();
  4.     }
  5. }
复制代码
  ***最终证明,打印任何引用数据类型的引用,就会调用toString方法***


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马