深入了解System.out.println()方法

为什么List L = new ArrayList<>();直接打印L为什么可以打印出List里面内容而非ArrayList底层首元素地址?

问题如图:
在这里插入图片描述
问题:我们都知道L保存的是是ArrayList底层首元素地址,应该和数组一样,直接打印的话应该打印的是哈希地址。
:System.out.println()底层会默认调用Object的toString方法,如果当前类没有复写toString方法就会去调用Object的toString方法
sout参数为非基本类型时:

 public void println(Object x) {
        String s = String.valueOf(x);
        synchronized (this) {
            print(s);
            newLine();
        }
    }

传参时向上转型为Object,在点进Object发现toString方法:

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

加油鸭!


版权声明:本文为weixin_45409986原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。