在Java中,数组是由相同数据类型的很多元素组成的一组序列。在数组中的每一个元素都有一个唯一的地址,对数组元素的存取都可以通过这个地址,我们把这个地址叫做索引(index)。一个整数(integer)类型的数组可以形象地表示成如下这张图片。
需要注意的是,在Java中,数组第一个元素的索引值是0,最后一个元素的所有是(数组的长度-1)。
声明(定义变量)一个数组变量可以使用如下语法:
datatype[] arrayVariableName= new datatype[numberOfArrayElements];
例如,声明一个int类型的数组,可以这么写:
int[] myArray = new int[10];
对以上这个数组的说明:
除此之外,我们在声明数组的时候也可以直接给每个元素赋值,如下数组的声明也是合法的:
int[] nums={5, 3, 6, 8, 11, 2};
如果我们在声明数组的时候没有直接给每个元素赋值操作,像这个数组int[] nums=new int[10];
,那么数组中的每个元素都保持相应数据类型的默认值,如下是Java中八种基本数据类型的默认值:
数据类型 | 默认值(0值) |
---|---|
int/short/long/byte | 0 |
char | ‘\u0000’ |
boolean | false |
double/float | 0.0 |
注意:Java中引用类型的默认值为Null,Null是上一篇文中提到的”没有对象”的意思。String类型也是引用类型,其默认值是Null。另外,数组本身也是引用类型,它的默认值是Null,即,如果我们声明一个数组int[] nums=null;
,那么,nums本身是没有被赋值的,nums==Null,此时对nums进行操作时系统就会抛出java.lang.NullPointerException的错误。
定义一个长度为10的整型数组,数组变量名称nums,修改数组第一,第二,第三元素的值分为98,86,90。 解答: 首先,定义int类型数组:
int[] nums = new int[10];
此时的数组元素如下:
通过index访问数组元素,元素1,元素2,元素3的值并修改,此时请注意数组元素的索引是从0开始的,即第一个元素是nums[0]
:
nums[0]=98;
nums[1]=86;
nums[2]=90;
修改过后的数组元素如下:
由于数组是有大小的,如果我们通过数组索引来存取数组元素时使用了不恰当的索引值,系统就会抛出ArrayIndexOutOfBoundsException。例如,int[] nums=new int[10]
这个数组元素的索引值范围时0 ~ 9,一旦我们访问nums[10]
或时nums[-1]
, 数组索引出界的异常就会被触发。