天天看点

浅谈Object类的toString方法

        我们都知道,当我们需要打印一个对象时,都是直接调用的toString方法,而这个方法即使不重写,也是可以调用的,因为它是Object类的方法,我们都知道,在java中,所有的类的超类都是Object.Object这个类里面的方法显的尤其重要,toString这个方法呢,就是为了让我们能得到一个对象的文本表现形式,从而窥测这个对象里面的属性。

       通常我们在不重写时,可能会得到这样的一串结果

[email protected]
           

那这个东西到底是什么呢,尤其是后面这一串是什么鬼

看一下源码就知道了

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

其实很简单,这个结果就是上面拼接出来的,hashCode是一个对象在堆里面对应的一个地址,尽量不要重写,除非在特定场合下,每一个对象的hashCode不要重复。

       练拳不练功,到头一场空。我搞了这么长时间的java,连Object的toString方法是怎么回事儿,直到今天才明白,说起来实在是惭愧啊.

继续阅读