java吧 关注:1,302,916贴子:12,859,172
  • 3回复贴,共1

对象数组的一个疑问

只看楼主收藏回复


最后一句System.out.println(per[i]+" ");和System.out.println(per[i].getName()+" ");都编译无错误,但是前者输出
Person@55f33675
Person@527c6768
Person@65690726
,有哪位高手可以从内存层次给我讲解一下,这结果代表了什么I


IP属地:浙江1楼2013-11-02 13:48回复
    java中,任何类型跟String用加号连,都默认调用该类型的toString方法,你的Person默认是继承自Object类的,而Object类的toString源码如下:
    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
    返回的是类名和十六进制的内存地址。
    所以如果你想按你的想法返回,可以重写toString方法,再打印就是你想的内容了!
        ------来自土豪金小米3CCC专用贴吧客户端,高端,大气,上档次!~I


    青铜星玩家
    百度移动游戏玩家均可认证(限百度账号),去领取
    活动截止:2100-01-01
    去徽章馆》
    IP属地:湖北2楼2013-11-02 13:57
    收起回复
      2026-05-16 05:54:55
      广告
      不感兴趣
      开通SVIP免广告
      数组中三个匿名对象的内存地址


      3楼2013-11-02 14:01
      回复