什么时候采用静态初始化方式,什么时候采用动态初始化方式?
当你创建数组的时候,确定数组中存储哪些具体元素时,采用静态初始化方式。
当你创建数组的时候,不确定将来数组中存储哪些元素,你可以采用动态初始化的方式,预先分配内存空间。
内存分析图:
示例代码:
public class ArrayTest02 { public static void main(String[] args) { //声明,定义一个数组,并动态初始化它 int[] a = new int[4]; for (int i = 0;i < a.length;i++) { System.out.println("数组的第" + i + "个值是" + a[i]); } //定义一个Object引用类型的数组并动态初始化它 Object[] objs = new Object[3]; for(int i = 0;i<objs.length;i++){ System.out.println(objs[i]); } System.out.println("=============================="); //定义一个String引用类型的数组并动态初始化它 String[] strs = new String[3]; for (int i = 0;i< strs.length;i++){ System.out.println(strs[i]); } System.out.println("=============================="); //定义一个String引用类型的数组并静态初始化它 String[] strs1 = {"str1","str2","str3"}; for(int i = 0;i< strs1.length;i++){ System.out.println(strs1[i]); } //定义一个Object引用类型的数组并静态初始化它 /*Object o1 = new Object(); Object o2 = new Object(); Object o3 = new Object();*/ /*Object[] objs1 = {o1,o2,o3}; for(int i = 0;i< objs1.length;i++) { System.out.println(objs1[i]); }*/ Object[] obj = {new Object(),new Object(),new Object()}; for(int i = 0;i< obj.length;i++){ System.out.println(obj[i]); } } }
运行结果;