Object.toString()方法返回16进制地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object.toString()方法返回16进制地址相关的知识,希望对你有一定的参考价值。

首先Object源码

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

问题:为什么要将hashCode()转换为16进制。
答:hashCode()方法返回的是此对象在内存中的地址,是用×××表示的。
1.内存的地址在计算机行业通常是由16进制进行表示,有的人可能会问,转换的过程会不会造成性能的损失。通过toHexString()源码来看,所有的计算都是用的二进制计算法,而二进制计算对性能的影响是不大的。
2.另外一个目的,toString()方法返回值是”全限定名+@+地址“的组合,这样做的目的是为了我们debug的时候可以唯一区分一个对象,而将地址从10进制转换为16进制更方便我们人类去识别。

以上是关于Object.toString()方法返回16进制地址的主要内容,如果未能解决你的问题,请参考以下文章

Object.prototype.toString()

JavaScript toString() 函数详解

JavaScript toString() 函数详解

重写Object.toString()总结

NullPointerException:无法调用“Object.toString()”,因为“javax.swing.JButton.getIcon()”的返回值为 null

object1.toString() == object2.toString() [重复]