美文网首页Java我爱编程
Java中数组引用和内存理解

Java中数组引用和内存理解

作者: 疯帮主 | 来源:发表于2018-05-27 23:22 被阅读0次

源码

/*
    数组引用
*/

class Array1{
    public static void main(String[] args){
        // 定义多维Person对象
        Person[] students;
        // 初始化两个对象
        students = new Person[2];
        
        //定义一个person对象,静默初始化
        Person zhang = new Person();
        //对zhang实例属性赋值
        zhang.age = 18;
        zhang.height = 188;

        //定义一个person对象,静默初始化
        Person li = new Person();
        //对zhang实例属性赋值
        li.age = 20;
        li.height = 200;

        //给students实例赋值, 实际是引用,只有基本数据数据类型会赋值,引用类型都是引用
        students[0] = zhang;
        students[1] = li;

        //输出
        zhang.info();
        students[0].info();
        li.info();
        students[1].info();

        //修改li实例
        li.age = 22;
        li.height = 220;
        li.info();
        students[1].info();
    }
}

class Person{
    public int age;
    public int height;

    public void info(){
        System.out.println(age + " : " + height);
    }
}

输出

H:\Code\Java\learn\array>java Array1
18 : 188
18 : 188
20 : 200
20 : 200
22 : 220
22 : 220

1.定义多维Person对象

开始只是在栈内存中申请了内存,定义了引用变量

image.png

2.动态初始化studnets实例

在堆内存里声明两块内存,引用变量默认赋值为null

image.png

3.静默初始化zhang实例

先在栈内存有了空间,再在堆内存声明变量,赋默认值

image.png

4.给zhang对象属性赋值

image.png

5.li对象同上

image.png

6.给students赋值,实际是引用(就是同一个东西,都很多名称)

让它指向其他对象

7.修改students[]或zhang的值,另一个对象也在改变

引用(就是同一个东西,都很多名称)

image.png

这是笔者的理解,有什么不足的地方请指出

相关文章

  • Java中数组引用和内存理解

    源码 输出 1.定义多维Person对象 开始只是在栈内存中申请了内存,定义了引用变量 2.动态初始化studne...

  • 20160710_Programming

    ------JAVA20160710------1、实际的数组对象存储在堆内存中,如果引用该数组对象的数组引用变量...

  • Java中数组和内存理解

    1. 定义数组 int[] arr;在栈内存中申请内存 2. 默认初始化 arr = new int[5];在堆内...

  • Q:Java有几种引用类型?

    Java有几种引用类型 引自 java 知识 之 内存管理 Java 中的内存管理包括内存分配和内存回收,这些都是...

  • 疯狂java讲义第四章笔记(部分)

    数组作为引用类型的运行机制 内存中的数组 数组引用变量只是一个引用,相当于一个指针,指向内存中的数组的对象。 数组...

  • 对象的引用

    一、概述 Java对象的引用:强引用,软引用,弱引用和虚引用。众所周知,Java中是JVM负责内存的分配和回收,这...

  • 数组内存分配图解

    Java中的内存分配图: 数组的内存图解---- 一个数组 数组的内存图解 ----- 2个数组 数组内存...

  • 数组概念

    在java中,数组是引用类型变量。要使用数组,首先必须对数组初始化。 所谓初始化就是为数组对象元素分配内存空间,并...

  • Java中多维数组和内存的理解

    二维数组 源码 输出 1. 定义并初始化 数组类型是引用类型,第一维是引用类型,默认是null 2. 给da[2]...

  • 数组内存分配图解

    Java中的内存分配图: 数组的内存图解---- 一个数组 数组的内存图解 ----- 2个数组 数组内存图解 -...

网友评论

    本文标题:Java中数组引用和内存理解

    本文链接:https://www.haomeiwen.com/subject/trgijftx.html