Java浅谈数组之内存分析

Posted 山河故人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
    }
}

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

 

以上是关于Java浅谈数组之内存分析的主要内容,如果未能解决你的问题,请参考以下文章

Java浅谈数组之多维数组

浅谈java 数组内存原理

浅谈Java内存结构

浅谈equals和==的区别

Java浅谈数组

Java源码之ArrayList分析