Java里数组的三种初始化方式
-
静态初始化
除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
// 静态初始化 int[] iStaticArr = { 5, 2, 0 }; LOLHero[] staticHeros = new Hero[] { new LOLHero("艾希","女"), new LOLHero("盖伦","男"), new LOLHero("挖掘机","未知") };
-
动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行。
//动态初始化 int[] iDynamicArr = new int[3]; iDynamicArr[0] = 5; iDynamicArr[1] = 2; iDynamicArr[2] = 0; LOLHero[] dynamicHeros = new LOLHero[3]; dynamicHeros[0] = new LOLHero("艾希","女"); dynamicHeros[1] = new LOLHero("盖伦","男"); dynamicHeros[2] = new LOLHero("机器人","未知");
-
数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化(即使不给赋初值,也会被程序赋予默认值)。
//默认初始化 int[] iDefaultArr = new int[3]; //数组中的每个元素被赋予默认值0, 0, 0 LOLHero[] defaultHeros = new LOLHero[3]; //数组中每个元素被赋予默认值null, null, null
其中布尔类型的变量的默认值为false
个人觉得,还是静态初始化省事,不过有时候确实需要动态初始化,有时候也不用初始化,所以看情况而定吧。