javaSE回顾_05

作者: 啊耶嗨 | 来源:发表于2020-10-24 15:43 被阅读0次

    数组:


    静态初始化:

    //静态初始化

    int[] a = {1,2,3};

    动态初始化:

    //动态初始化

    int[] a = new int[2];

    a[0]=1;

    a[1]=2;

    当数组被声明且未初始化时。数组元素将会根据数组类型进行隐式初始化,如int[3] 的初始化结果为{0,0,0}

    长度是确定的。数组一旦被创建,它的大小就是不可以改变的。如果越界,则报错。

    其元素必须是相同类型,不允许出现混合类型。

    数组中的元素可以是任何数据类型,包括基本类型和引用类型。

    数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

    多维数组:

    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一位数组,其每一个元素都是一个一维素组。

    int[][] a = new int[2][5];        可以看为一个两行五列的数组

    数组的工具类java.util.Arrays——赋值(赋值)、排序(sort)、查找数组元素(binarySearch)

    数组的存储及指向


    存储

    数组本身就是对象,存储在堆内存中。

    数组中的int类型值存储在堆内存还是栈内存?

    java的数组变量是一种引用型的变量,数组变量并不是数组本身,他只是指向堆内存中的数组对象。所有局部变量都是存放在栈内存中,不管其是基本类型的变量还是引用类型的变量,都是存储在各自的方法栈区中;但引用类型变量所引用的对象(包括数组、普通java对象)则总是存储在堆内存中。综上,基本类型的数组如{1,2,3},是一个对象,故存在堆内存。

    在方法中声明的引用类型的变量存储在哪里?

    堆里!

    在类下面声明的基本类型变量又是如何存储的?

    堆里!

    指向

    int[] a = new int[5];

    int[] b = new int[5];

    int[] c = a;

    此时 a 和 c 共同指向堆内存中的同一位置。他们的哈希值相同,且不论是a或c的任意一个,对数组元素进行改变,他们都可以访问到改变后的数组。相比之下,b则是一个全新的数组,哪怕它的存储空间大小、类型,甚至元素值都同a、c相同。

    相关文章

      网友评论

        本文标题:javaSE回顾_05

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