一、数组概述
1. 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。
2. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
3. 数组中的元素可以是任何数据类型,包括基本类型和引用类型
二、一维数组的声明
1.一维数组的声明方式: type var[ ] ;或type[ ] var ;
2.java语言中声明数组时不能指定其长度(数组中元素的个数),
例如: int a[5] ; 非法
三、数组对象的创建
Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数]
例如:
public class Test { public static void main(String args[]) { s = new int[5]; for (int i=0; i< 5; i++) { s[i] = I; } }}四、元素为引用类型的数组
元素为引用数据类型的数组中的每一个元素都需要实例化。
public class Test { public static void main(String args[]) { Date[] days; days = new Date[3]; for (int i = 0; i < 3; i++) { days[i] = new Date(2004,4,i+1); } } class Date { int year;int month;int day; Date(int y,int m,int d) { year = y; month = m; day = d; } }}内存分析:
days
Date[] days声明数组时,由于未创建数组对象,栈内存中内容为NULL。
执行到days = new Date[3],栈中内容更新,指向堆中new出来的对象。堆中的内容也没有初始化,所以也是NULL
执行完for循环之后,days[0], days[1], days[2]分别都指向了一个新的对象
五、数组初始化
1. 动态初始化
数组定义与为数组分配空间和赋值的操作分开进行,先分配,后赋值。
int a[ ] ; //定义
a = new int [3] ; //分配空间
a[0] = 3 ; a[1] = 9 ; a[2] = 8 ; //赋值
2. 静态初始化
在定义数组的同时就为数组元素分配空间并赋值。例如:
int a [ ] = {3,9,8};
或
Date days [ ] = {new Date(1,4,2004),
new Date(2,4,2004),
new Date(3,4,2004)
}
3. 数组元素的默认初始化
数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间时,每个元素也按照成员变量的规则被隐式初始化。如,double 类型,默认 0.0;引用类型,默认NULL; 逻辑类型,默认 false。
六、数组元素的引用
1. 定义并用运算符 new 为之分配空间后,才可以引用数组元素中的每个元素,数组元素的引用方式为:
arrayName[index] 2. index为数组元素下标,可以是整型常量或整型表达式。如:a[3], b[i], c[6*i]
3. 数组元素下标从0开始;长度为n的数组的合法下标取值范围为 0~n-1
4. 每个数组都有一个属性 length 指明它的长度。 a.length的值为数组a的长度(元素个数)
注意length后不要加括号,这里的length是一个属性,不是一个方法。与String区分开来。
新闻热点
疑难解答