No.1 數組與內存控制,no.1數組控制
1.動、靜態初始化(數組);初始化包括:①分配內存②賦初始值
- 何為動、何為靜,站在程序(系統)的角度來看,“動”指的是系統動態的賦初始值(先賦默認初始值,後面程序若有顯示賦值是在默認值上面進行再賦值)(程序員指定數組長度);“靜”指的是不由系統來賦初始值(系統指定長度),也就是由程序員顯示賦初始值
- 程序員角度上:動——程序員只指定長度,不指定初始值;靜——程序員不指定長度,指定初始值
- eg:
1 // 動態初始化
2 int score[] = new int[3]; // 此處有默認初始值
4 //通過循環為數組 動態 賦值,且賦奇數值
5 for(int i=0;i<score.length;i++){
6 score[i]=i*2+1; // 將默認初始值改掉
7 }
8
9 // 靜態初始化
10 int score[]={94,86,25,78,19};
2.局部變量存放在 各自的方法棧區中(main方法:main棧區),引用類型變量所引用的對象放在堆內存中
3.區分引用類型變量何時指變量何時指的是引用的對象,規則
- 引用變量本質上只是一個指針,只要程序通過它來訪問屬性或者調用方法,那麼引用變量就會由他所引用的對象來代替。
4.數組元素指的是:數組對象所存儲的值
- 數組元素就是變量,可以當成普通變量來進行使用
- 區別:main方法聲明的變量屬於局部變量保存在main方法棧中,但是數組元素作為數組對象的一部分是保存在堆內存中的,不論他們是基本類型還是引用類型的數組元素
5.沒有多維數組,多維數組的本質仍然是一維數組
- 所謂多維,其實是指數組元素仍然是數組(此處的數組可以是N維的)的1維數組
- 初始化時,可先初始化最左邊的維數
- int[5][][]:表示長度為5的一維數組,它的數組元素是二維的數組,即它的數組元素是指向二維數組對象的引用變量
6.Java中數組是靜態的,即它一旦初始化完成,長度是不可改變的