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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kenhe 中级黑马   /  2014-12-17 22:22  /  1706 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当建立引用数据类型时:
比如 数组  int[] arr=new int[3];
       集合类中:ArrayList al=new ArrayList();
System.out.println(arr);
System.out.println(al);
输出数组时打印的是地址值,输出al时打印的却是集合中的内容。
不是都应该是地址值吗?

2 个回复

倒序浏览
打印出来有问题?楼主现在知道答案了没
回复 使用道具 举报
数组引用变量是指向新数组的内存地址,数组引用变量存的内存地址
而集合中的arraylist中的引用变量al指向的是一个arraylist对象,因为arraylist类的是系统自带的,而且如果打印它的对象是,系统的对自动调用toString()方法,下面有例子 你看下就知道了

public class Student {
    String name;
    int age;
   
        public Student() {
                super();
                // TODO Auto-generated constructor stub
        }
       
        public Student(String name, int age) {
                super();
                this.name = name;
                this.age = age;
        }

        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getAge() {
                return age;
        }
        public void setAge(int age) {
                this.age = age;
        }
        @Override           //重写toString()方法
        public String toString() {
                System.out.println("调用toString方法");
                return "Student [age=" + age + ", name=" + name + "]";
        }
               
        public static void main(String[] args) {
                System.out.println(new Student("lisi",47));
               
        }
}


输出结果是:
调用toString方法
Student [age=47, name=lisi]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马