int[] a = new int[6];
int 表示數(shù)組里面存放數(shù)據(jù)的數(shù)據(jù)類型
[] 表示數(shù)組
a 表示數(shù)組名
new 新開辟一個堆內(nèi)存空間
new int[] 新開辟的類型控件為int 類型的數(shù)組
6 表示數(shù)組長度
= 將新開辟的空間賦予數(shù)組a
數(shù)組定義格式:
動態(tài)初始化
元素類型[] 數(shù)組名 = new 元素類型[10];
元素類型 數(shù)組名[] = new 元素類型[10];
靜態(tài)初始化
元素類型[] 數(shù)組名 = {元素1项栏,元素2...};
元素類型[] 數(shù)組名 = new 元素類型[]{元素1泡嘴,元素2...};
區(qū)別:動態(tài)一開始只知道元素類型和元素個數(shù)蝴罪,不清楚具體的值裹芝,在使用的時候賦值
靜態(tài)在類加載的時候穿稳,就已經(jīng)創(chuàng)建好空間并賦值了。
數(shù)組在內(nèi)存中的理解:
* 數(shù)組新創(chuàng)建的時候放在棧里恰梢,在堆空間開辟對應數(shù)量的空間藻烤,預留給棧里的數(shù)組
* 數(shù)組的實際值在對空間里,并且會賦予默認值
* 棧存放的是堆內(nèi)存指向的地址爽雄,以及基本數(shù)據(jù)類型的值
* int[] j = null;
* 指向的是一個空蝠检,引用時發(fā)生的是空指針異常,一般就是對象沒有被聲明
* 引用時也就是引用了一個未被聲明的地址
關于 = 的一個特點:
在堆內(nèi)存中為數(shù)組asd開辟了一片空間盲链,并將地址傳給棧中的asd
然后棧中的zxc在執(zhí)行代碼后蝇率,獲得的是數(shù)組asd在堆中的地址,對兩個數(shù)組其中一個修改刽沾,兩個數(shù)組在引用時的結(jié)果相同
所以輸出的結(jié)果就是45
int[] asd = {1,2,3,4};
int[] zxc = asd;
zxc[2] = 45;
System.out.println(asd[2]);