A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高双武 黑马帝   /  2011-11-17 14:33  /  1423 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wudiisss 于 2011-11-17 14:34 编辑

代码如下
package execisetest;
import java.util.*;
class Person3{}
public class CollectionTest {
        public static void main(String [] args){               
                ArrayList al=new ArrayList();       
                Person3 p=new Person3();
                Integer it=3;
                Class cl=Person3.class;               
                System.out.println(p);
                System.out.println(it);
                System.out.println(cl);               
        }
}

输出结果是
execisetest.Person3@497934
3
class execisetest.Person3


al  p  it  都是引用变量,但是输出时只有p为内存地址,al和it不是,al和it在内存中存储的就是输出的内容还是输出的内容是经过转化了的,若是转化了的,那么怎么才能得到他们自内存中存储的内容?

1 个回复

倒序浏览
System.out.println(obj);
这个方法输出的时候应该去调用obj.ToString() 方法。ArrayList和Integer都是Java自己封装好的类,其中ToString()也是重写了的。而Person3这个类是自定义的,没有重写ToString() 所以会输出内存地址。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马