int a1[];int[] a2;double b[];Person[] p1;String s1[];2)java语言中声明数组时不能指定长度(数组中元素的个数),例如:int a[5];//非法3、数组对象的创建1)元素为基本数据类型的数组public class Test { public static void main(String[] args) { int[] s; //数组s为null s = new int[5]; //数组s指向堆空间中分配的5个int格子,每个格子默认值为0 /* 为数组中的每个格子赋值 */ for(int i=0; i<5; i++) { s[i] = i; } }}2)元素为引用数据类型的数组public class Test { public static void main(String[] args) { Date[] days; //数组days为null days = new Date[3]; //数组days指向堆空间中分配的3个Date类型格子,每个格子默认值为null /* 为数组中的每个格子赋值 */ 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; }}4、数组初始化1)动态初始化数组的定义与为数组元素分配空间和赋值的操作分开进行,public class Test { public static void main(String[] args) { int[] a; a = new int[3]; a[0] = 3; a[1] = 9; a[2] = 8; Date[] days; days = new Date[3]; days[0] = new Date(2004, 4, 1); days[1] = new Date(2004, 4, 2); days[2] = new Date(2004, 4, 3); }}class Date { int year; int month; int day; Date(int y, int m, int d) { year = y; month = m; day = d; }}2)静态初始化在定义数组的同时就为数组元素分配空间并赋值。a、数组元素的初值存放在栈中public class Test { public static void main(String[] args) { int[] a = {3, 9, 8}; Date days[] = { new Date(2004, 4, 1); new Date(2004, 4, 2); new Date(2004, 4, 3); }; }}class Date { int year; int month; int day; Date(int y, int m, int d) { year = y; month = m; day = d; }}b、数组元素的初值存放在堆中public class Test { public static void main(String[] args) { int[] a = new int[]{3, 9, 8}; Date days[] = { new Date(2004, 4, 1); new Date(2004, 4, 2); new Date(2004, 4, 3); }; }}3)默认初始化数组是引用数据类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。public class Test { public static void main(String[] args) { int[] a = new int[5]; Date[] days = new Date[3]; System.out.PRintln(a[3]); System.out.println(days[2]); }}class Date { int year; int month; int day; Date(int y, int m, int d) { year = y; month = m; day = d; }}运行结果:0null
新闻热点
疑难解答