什么时候采用静态初始化方式,什么时候采用动态初始化方式?
- 当你创建数组的时候,确定数组中存储哪些具体元素时,采用静态初始化方式。
- 当你创建数组的时候,不确定将来数组中存储哪些元素,你可以采用动态初始化的方式,预先分配内存空间。
内存分析图:
示例代码:
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]);
}
}
}