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(); } }
下面将上面的代码转化为存储示意图说明: