数组类型
理解数组:数组也是一种类型
java的数组要求所有的数组元素具有相同的数据类型。一旦数组的初始化完成,数组在内存中所占的空间被固定下来,因此数组的长度是不可改变的。
java的数组既可以存储基本类型的数据,也可以存储引用类型的数据。数组也是一种引用类型。
定义数组
type[] arrayName
type arrayName[]
对于这两种语法格式,推荐使用第一种格式。因为第一种格式不仅具有更好的语意,而且具有更好的可读性。对于type[[ arrayName;方式,很容易理解这是定义一个变量,其中变量名为arrayName,而变量类型是type[]。
数组是一种引用类型的变量,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定义了一个指针),这个引用变量还未指向任何有效的内存,因此定义数组时不能指定数组的长度。只有对数组初始化后才可以使用。
数组的初始化
数组必须先初始化才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个元素赋初始值。
数组的初始化方式:
静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。
静态初始化语法格式:
arrayName =new type[]{element1,element2,element3,element4...}
还有一种简化的格式:
arrayName ={element1,element2,element3,element4...}
int[] arr1=new int[]{1,2,3,4,5,6}//数组长度为6
int[] arr2={1,2,3,4,5,6}
动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值
动态初始化语法格式:
arrayName=new type[length];
length表示数组的长度
int[] arr=new int[3];
数组初始化时的默认值:
- 基本类型中的整数类型:默认值为0;
- 基本类型中的浮点类型:默认值为0.0;
- 基本类型中的字符类型:默认值为 ’ ';
- 基本类型中的布尔类型:默认值为false;
- 引用类型:默认值为null;
使用数组
数组最常用的用法就是访问数组元素,包括对数组元素进行赋值和取出数组元素的值。访问数组元素都是通过数组的索引值来访问数组元素的。访问到数组元素后,就可以把一个数组元素当成一个普通变量使用了,包括为该变量赋值和取出该变量的值。
数组元素的索引是从0开始的,第一个元素的索引值为0,最后一个数组元素的索引值为数组长度减1。
所有的数组都提供了一个length属性,通过这个属性可以访问到数组的长度,一旦获得了数组的长度,就可以通过循环来遍历该数组的每个数组元素。
int[] arr1=new int[6];
System.out.println(arr1.length); //arr1的长度为6
int[] arr2=new int[]{1,2,3,4};
System.out.println(arr2.length); //arr2的长度为4
for(int i=0;i<arr2.length;i++){
System.out.println(arr[i]); //1,2,3,4
}
foreach循环(增强for循环)
从jdk1.5之后,java提供了一种更简单的循环:foreach循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组和集合元素时,无须数组和集合的长度,无须根据索引来访问数组元素和集合元素,会自动遍历数组和集合每个元素。
foreach的语法格式:
for(type variableName : array | collection)
{
//自动迭代访问每个元素。。。
}
int[] arr=new int[]{1,2,3,4};
for(int temp:arr){
System.out.println(temp);
}
//输出结果:
//1
//2
//3
//4