一维数组
数组定义的格式
type [] arrayName;
理解:变量名是arrayName,变量类型是typep[]
注意:type[]是一种新类型,与type类型完全不同(类比:例如 int类型是基本类型,但int[]是引用类型)。
数组的初始化
初始化即是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。
只要为数组元素分配了内存空间,数组元素就具有了初始值。初始值的获得有两种形式:一种由系统自动分配,一种由程序员指定。
静态初始化
初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组长度。
格式:
arrayName = new type[]{element1,element2,element3...}
type就是数组元素的数据类型,此处的type必须与定义数组变量时所使用的type相同,也可以是定义数组是所指定的type的子类。值得注意的是:执行静态初始化时,显示指定的数组元素值的类型必须与new关键字后的type类型相同,或者是其子类的实例。
在上面程序中,String类型是Object类型的子类。
除此之外,静态初始化还有如下的简化格式:
type[] arrayName = {element1,element2,element3...}
注意:只有在定义数组的同时执行数组的初始化才支持使用简化的静态初始化。
在实际开发中,更习惯将数组定义和数组初始化同时完成。
int[] a = {5,6,7,8};
动态初始化
动态初始化只指定数组的长度,有系统为每个数组元素指定初始值。
格式:
arrayName = new type[length];
与静态初始化相似的是,此处的type必须与定义数组变量时所使用的type相同,也可以是定义数组是所指定的type的子类。
数组的默认初始值:
注意:不要同时使用静态初始化和动态初始化,也就是说不要再进行数组初始化时,既指定数组长度,也为每个元素分配初始值。
内存中的数组
关于上述代码的内存解析
基本数据类型数组的初始化
引用类型数组的初始化
相同的效果
多维数组