石臼墙话板琅嬛福地——回顾总结

javaSE回顾_05

2020-10-24  本文已影响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相同。

上一篇 下一篇

猜你喜欢

热点阅读