快捷导航

为什么同样是对象,输出对象名就有不同?

public class Test{    Integer one;}    public static void main(String[] args){    Test test = new Test();    System.out.println(test);     System.out.println(test.one);     }为什么输出对象名的时候,包装类的对象就不输出实例化的对象地址??

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

当调用System.out.println()输入一个对象的时候,jvm会去调用对象的toString()方法。因为所有对象都会继承Object对象,因此当当前对象没有重写toString()方法的时候,JVM就会调用Object对象的toString()。
以下是Object的toString()源码,可以看到,输出的就是你所说的引用。
publicStringtoString(){returngetClass().getName()+"@"+Integer.toHexString(hashCode());}那么为什么Integer对象输出的确实值,根据上面的描述,Integer应该是重写了toString()方法,以下是源码。
publicstaticStringtoString(inti){if(i==Integer.MIN_VALUE)return"-2147483648";intsize=(i
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP