数组初始化
1.静态初始化
除了用new关键字来产生数组以外,还可以直接定义数组的同时就为数组元素分配空间并赋值。
int[] a={1,2,3};
Man[] mans={new Man(1,1),new Man(2,2)}
2.动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行。
int[] a=new int[]{1,2,3};
int[] a=new int[2];
a[0]=1;
a[1]=2;
3.数组的默认初始化(数组元素相当于对象的成员变量)成员变量默认值:https://blog.csdn.net/pmcasp/article/details/78406662
默认初始化:数组元素相当于对象的成员变量,默认值跟成员变量的规则一样。数字0,布尔false,char\u0000,引用:null
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
int a[]=new int[2]; //0,0
boolean[] b=new boolean[2]; //false,false
String[] s=new String[2]; //null,null
数组的界限
下标的合法区间:[0,length-1]
数组的长度是不可变的,如果越界,则报:ArrayIndexOutofBoundsException
静态初始化和动态初始化的区别?
数组的静态初始化
int[] a={1,2,3,4};
动态初始化
int[] intArray;//声明数组
intArray = new int[5];//为数组分配空间
所谓的静态和动态是相对于程序运行是而言的,静态是在程序编译时就初始化好了的,动态初始化是在程序运行是才动态分配内存空间。对于代码而言,其实都可以。唯一不一样的地方, 就是动态的初始值都是0,静态的是直接给定值了。