yunyuntop 2017-07-22 15:22 采纳率: 80%
浏览 6573
已采纳

打印String对象为什么输出的不是地址啊

String s = new String("abc");
System.out.println(s);
这输出是s的内容,这明明是对象的引用啊,是地址啊
如果这样
Student student =new Student();
System.out.println(student);却打印地址

  • 写回答

8条回答 默认 最新

  • 蓝色D风车 2017-07-23 03:19
    关注

    因为所有的类继承Object类,所以单独输出一个对象的时候,它会调用Object.toString(当然 你没有重写同String的话),打印出来的就是一串表达地址的字符串。图片说明
    图片说明
    图片说明
    就是这样,也就是最后调用了toString().
    然而我们的String类里重写了toString(),它返回的是String自己,String是什么呢,String其实就是字符数组(它内部封装 了一个字符数组),所以打印字符串,其实就是打印字符数组,而不是地址。图片说明
    可以看下源码更好理解

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?