数组是编程语言中常见的一种数据结构,可以存储多个数据,每个数组元素存放一个数据,通常可以通过数组元素的 索引来访问数组元素,包括赋值,取值,同时,java语言的数组具有其特有的特征。
数组也是一种类型。Java中的数组要求所有的数组元素具有相同的数据类型。因此在一个数组中,数组元素的类型是
唯一的,即一个数组只能存储一种数据类型的数组。
Java的数组即可以存储基本类型的数据,也可以存储引用类型的数据,只要数组元素的类型统一即可。
数组也是一种数据类型,它本身是一种引用类型,例如int是一个基本类型,但int[]就是一种引用类型了。
由于java语言面向对象的特征,类与类之间支持继承关系,所以数组的数组元素之间可以是父子关系,
但是该数组的数据类型仍然是唯一的,指向数组元素的最高父类,例如有一个水果数组,要求每个元素是水果,但它数组 元素可以是苹果,也可以是香蕉,这是他们都继承了fruit类,因此数组元素的类型还是唯一的
数组的定义
Java支持两种语法格式定义数组:
type[] arrayName; //推荐这种方式,语义明确,可读性强
type arryName[]; //早期使用,不推荐
数组是一种引用类型的变量,因此使用它定义变量时,仅仅定义了一个引用变量(也就是定义了一个空指针),
还未指向任何有效的内存,因此定义数组时不能指定数组的长度,也不能被使用。
数组的初始化
Java语言中数组必须先初始化才能被使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素
赋初始值。
数组的初始化有两种方式:
静态初始化
语法格式是:
arrayName=new type[]{element1,element2,element3,...};
//简化格式如下
arrayName={element1,element2,element3,...};
静态初始化时,显式指定的数据类型必须与new关键字后面的type类型相同,或者是其子类类型。
动态初始化
动态初始化只指定数组长度,由系统为每个数组元素赋初始值,动态初始化语法格式如下:
arrayName=new type[length];
执行动态初始化时,程序员只需指定数组的长度,几位每个数组元素分配所需的内存空间,系统负责为这些数组元素分配初始值。指定类型的规则如下:
-
数组元素类型是基本类型的整数类型(byte,short,int,long),则指定初始值0;
-
数组元素类型是基本类型的浮点类型(float,double),则指定初始值0.0;
-
数组元素类型是基本类型的字符类型(char),则赋初始值'\u0000';
-
数组元素类型是基本类型的布尔类型(boolean),则赋初始值false;
-
数组元素类型是引用类型(类,接口,数组),则赋初始值null;