作者:虚线老母阳 | 来源:互联网 | 2023-06-14 11:30
数组数组(Array):相同类型数据的集合。数组的定义格式:方式1(推荐,这种格式最常用,更能表明数组类型)数据类型[]数组名;例如:int[]array;这段代码的意思是:定义了
数组
数组(Array):相同类型数据的集合。
数组的定义格式:
方式1(推荐,这种格式最常用,更能表明数组类型)
数据类型[] 数组名;
例如:
int[] array;
这段代码的意思是:定义了一个int类型的数组,数组名叫array。[]这个中括号就是数组的标识,将中括号去掉就变成定义一个变量了
方式2
数据类型 数组名[];
例如:
int array[];
数组的初始化
动态初始化:初始化是仅指定数组的长度,由系统来为数组分配初始值
格式:数据类型[] 数组名 = new 数据类型[数组长度];
例如:int[] array = new int[10];
这段代码的意思是根据new关键字创建了一个int类型的数组容器,这个容器可以存储10个int类型的整数,这个容器被一个数组名叫array的数组所记录
静态初始化:初始化时手动为数组指定要存储的数据,系统会自动计算该数组的长度
格式1:数据类型[] 数组名 = new 数据类型[]{数据,数据,数据,....};
例如:int[] array = new int[]{1,2,3,4};
格式2:数据类型[] 数组名 = {数据,数据,数据,....};
例如:int array[] = {1,2,3,4};
两种初始化的区别:
动态初始化:手动指定数组长度,由系统给出默认初始化值。
静态初始化:手动指定数组元素,系统会根据元素个数,计算数组的长度
两种初始化都有不同的应用场景
Java数组是一种引用数据类型。数组变量并不是数组本身,而是指向堆内存中存放的数组对象。因此,可以改变一个数组变量所引用的数组
数组是否必须初始化?
对于这个问题,关键在于要弄清楚数组变量和数组对象的差别。数组变量是存放在栈内存中的,数组对象是存放在堆内存中的。数组变量只是一个引用变量,他能够指向实际的数组对象。所谓的数组初始化并非对数组变量初始化,而是对数组对象进行初始化。
举个例子,int[] wangfugui,wangfugui就是老王给孩子起的名字,int[]就是这个孩子的种族,但他根本没有孩子,如果自己和老婆生一个的话这个就是使用new关键字创建的一个数组容器,就是:int[] wangfugui = new int[]{1,2,3,4},如果老王不想生孩子或者不想让孩子叫这个名字,但他想了这个好个名字又不想浪费,他就一直在等遇到一位靓仔,然后让靓仔当老王的儿子。这个就是改变一个数组变量所引用的数组,就是:
int[] wangfugui = new int[]{3,2,1};//int[] wangfugui;
int[] array = new int[]{1,2,3};
wangfugui = array;
注意,如果数组变量想要能使用,该数组变量必须有引用的数组,或者初始化数组,不然使用该数组变量使用时会报错。就像老王给孩子想了一个好名字,但他根本就没有孩子。
数组运用基础
数组长度: java中的每个数组都有一个名为length的属性,表示数组的长度。数组长度一旦确定,在程序运行的过程中就不能改变长度。只能自己手动更改数组的长度
数组元素访问
数组变量访问方式
格式:数组名
数组内部保存的数组的访问方式
格式:数组名[索引]
索引是数组容器中空间的编号,和数组长度不同,数组长度是从1开始计数,而索引是从0开始记录,比如一个长度为5的数组,该数组中的索引就是0、1、2、3、4。
比如我们想访问array数组的第一个数据就是:array[0]
元素访问实例:
图中控制台打印的 [I@33e16fd 是这个数组在内存中的地址值
@:分隔符
[:当前空间是一个数组类型空间
I:当前数组容器中所存储的数据类型
133e16fd:十六进制内存地址
本文由樊兔教育图二UR整理发布,樊兔教育是一个泛互联网职业教育平台,官网地址:http://ftuedu.com/