打印语句 :System.out.println(st);System.out.println(st.toString());
打印的内容一样,why?
①调用了PrintStream类中的println方法,此方法有valueOf方法
- public class PrintStream extends FilterOutputStream{
- //调用了这个println方法
- public void println(Object x) {
- String s = String.valueOf(x);
- synchronized (this) {
- print(s);
- newLine();
- }
- }
- }
复制代码
②接着调用了String类中的valueOf方法,此方法中就有toString方法(继承在Object类中)
- public final class String{
- public static String valueOf(Object obj) {
- return (obj == null) ? "null" : obj.toString();
- }
- }
复制代码 ***最终证明,打印任何引用数据类型的引用,就会调用toString方法***
|
|