一、数组内存分析
1、java中的数组是引用数据类型,必须分配在堆中,数组中每个元素相当于它的成员变量(默认值为0);但C中的数组可以分配在栈中。数组中的元素可以是基本类型,也可以是引用类型。如String s1[];//存储的是String的引用。
2、Java中声明数组时不能指定其长度。如 int a[5];//错误
3、数组名 = new 数组元素类型 [数组元素的个数]
int [] s;//null s=new int[5];//默认为0
//int s[]=new int[5] for(int 1=0; i<5; i++){ s[i]=i; }
public class Test{ public static void main(String args[]){ Date [] days;//null days = new Date[3];//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; } }
二、创建和使用
1、动态初始化:数组定义与为数组元素分配空间和赋值分开进行。(如上例)
2、静态初始化:数组定义的同时为数组元素分配空间并赋值。
如:int a[]={1,2,3};Date days[]={new Date(2004,4,1),new Date(2004,4,2),new Date(2004,4,3)};
注意:数组元素相当于类的成员变量,按照成员变量的规则默认初始化
三、引用
arrayName[index] index=0~n-1
arrayName.length求数组长度
public class Test{ public static void main(String args[]){ int a[] = new int[args.length]; for(int i = 0;i<args.length; i++){ a[i] = Integer.parseInt(args[i]); } print(a); } private static void print(int[] a){ for(int i = 0;i<a.length; i++){ System.out.print(a[i]+" "); } } }
四