美文网首页java成长笔记
数组在内存中的加载过程

数组在内存中的加载过程

作者: G_uest | 来源:发表于2019-07-23 18:12 被阅读0次

    一维数组

    array1.jpg
    int[] arr1 = new int[3];
    

    先把 arr1 压进栈,然后在堆空间中开辟一个空间,并把值初始化为0(arr1为引用变量,但是内部数据是int类型,默认值为 0,具体请参照局部变量与成员变量),最后把 开辟的堆空间地址 赋值给arr1

    int[] arr2 = arr1;
    

    把 arr1 中的 地址 赋值给 arr2,此时 arr2 和 arr1 指向同一块空间。

    arr2[0] = 20;
    

    此时,arr1[0] 值为 20。

    二维数组

    array2.jpg
    int[][] array = new int[3][];
    

    这条语句会先把 array 压栈,然后在堆中开辟一个空间,初始值为 null(array为引用变量,第一维同样是引用类型,具体请参照局部变量与成员变量),最后把开辟的堆空间地址赋值给 array。

    array[0][] = new int[1]
    

    这条语句会在堆空间中开辟一个 只有一个 int 类型大小的空间,并初始化为 0 ,然后把自己的地址赋值给array[0][]。

    array[1][] = new int[2];
    array[2][] = new int[3];
    

    这两条语句和上一条意义一样,就不再做解释

    相关文章

      网友评论

        本文标题:数组在内存中的加载过程

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