Java浅谈数组之内存分析(二)

引用类型的数组的初始化

1数组元素是引用时的内存分析

 

package com.java.array;

class Person{
    public int age;//年龄
    public double height;//身高
    //定义一个info方法
    public void info(){
        System.out.println("我的年龄是:"+age+",我的身高是:"+height);
    }
}

public class ArrayTest2 {

    public static void main(String[] args) {
        //定义一个student数组变量,其类型是Person[]
        Person []students;
        //执行动态初始化
        students=new Person[2];
        //创建一个Person实例,将这个实例赋值给变量zhang
        Person zhang=new Person();
        //为张所引用的Person对象的age和height赋值
        zhang.age=18;
        zhang.height=175;
        //创建一个Person实例,将这个实例赋值给变量wang
        Person wang=new Person();
        //为张所引用的Person对象的age和height赋值
        wang.age=24;
        wang.height=170;
        //将zhang变量赋值给第一个数组元素
        students[0]=zhang;
        //将wang变量赋值给第二个数组元素
        students[1]=wang;
        //下面两行代码的结果完全是一样的
        //因为wang和students[1]指向的是同一个Person实例
        wang.info();
        students[1].info();
    }
}

下面将上面的代码转化为存储示意图说明:

 

posted @ 2017-10-15 11:46  幸福的小菜鸟  阅读(243)  评论(0编辑  收藏  举报