內存分析
三種初始化狀態
- 靜態初始化
int[] a = {1,2,3};
Man[] mans = {new Man(1,1),new Man(2,2)};
- 動態初始化
int[] a = new int[2];
a[0]=1;
a[1]=2;
-
數組的默認初始化
- 數組是引用類型,它的元素相當與類的示例變量,因此數組一經分配空間,其中的每個元素也被按照示例變量同樣的方式被隱式初始化。
-
示例
public class ArrayDemo2 {
public static void main(String[] args) {
//靜態初始化 : 聲明加創建
int[] a= {1,2,3,4,5,6};
//動態初始化 : 包含,默認初始化
int[] b = new int[10];
b[0] = 10;
System.out.println(b[0]);
System.out.println(b[1]); //輸出爲0,儘管我們沒有對進行賦值,可它還是存在一個默認的值
}
}
數組邊界
- 下標的合法區間:[0,length-1],如果越界就會報錯;
- 示例
public class ArrayDemo3 {
public static void main(String[] args) {
int[] nums=new int[2];
System.out.println(nums[2]); //報錯
}
}
- java.lang.ArrayIndexOutOfBoundsException: 數組下標越界異常
- 小結:
1. 數組式相同數據類型(數據類型可以爲任意類型)的有序集合
2. 數組也是對象。數組元素相當於對象的成員變量
3. 數組的長度式確定的,不可變的。如果越界,則報:ArrayIndexOutOfBoundsException