更新時間:2020-10-26 17:38:34 來源:動力節點 瀏覽1219次
我們都知道Java沒有像C++那樣的“集合”概念,因為Java中的所有東西都是對象,也就是我們所說的萬物皆可為對象。然而,數組是用于儲存多個相同類型數據的集合,看似是矛盾的,但Java確實有自己的數組,并且通過Java數組初始化來提供支持。
對于數組的聲明其實都沒多大問題,推薦的寫法是使用 數據類型 + [] + 數組名稱的方式,因為這種方式可以很清楚的表明這是某一種類型的數組。例如,聲明一整數類型的數組。
int[] a;
在數組問題中,其實出現問題最多的就是數組初始化。數組的初始化分為三種方式,希望看完了本文我們再遇到數組初始化問題的時候,問題能夠迎刃而解。根據我個人的理解,數組的初始化操作分為三種方式。
第一種:特殊初始化,不用new關鍵字完成,在數組聲明的同時完成初始化操作,也被稱其為靜態初始化。主要原因是因為采用這種初始化的方式,數組的存儲空間的分配是由編譯器完成的。
下面以整數數組初始化為例,完成一個靜態數組初始化:
int[] a = {1,2,3};
Integer[] b = {
new Integer(1),
new Integer(2),
//Autoboxing
};
可以看到,a獲得了一個初始值,而b沒有;b將在以后賦值----這種情況下是賦給另一個數組。所有數組都有一個本質成員(無論它們是對象數組還是基本類型數組),可對其進行查詢—但不是改變,從而獲知數組內包含了多少個元素。這個成員就是length。與C 和C++類似,由于Java 數組從元素0 開始計數,所以能索引的最大元素編號是“length-1”。如超出邊界,C 和C++會“默默”地接受,并允許我們胡亂使用自己的內存,這正是許多程序錯誤的根源。然而,Java 可保留我們這受這一問題的損害,方法是一旦超過邊界,就生成一個運行期錯誤(即一個“違例”)。當然,由于需要檢查每個數組的訪問,所以會消耗一定的時間和多余的代碼量,而且沒有辦法把它關閉。這意味著數組訪問可能成為程序效率低下的重要原因——如果它們在關鍵的場合進行。但考慮到因特網訪問的安全,以及程序員的編程效率,Java 設計人員還是應該把它看作是值得的。
第二種:先使用new關鍵字創建數組,然后再分別為數組中的元素賦值,完成初始化操作。(注:如果數組元素類型為基本數據類型,在完成new 操作之后,數組中的元素會自動初始化為空值,可以直接使用,但是數組元素為引用類型,在完成new操作之后,沒有給引用類型賦值,就直接使用數組中的元素,會產生運行時異常。)
下面還是以整數數組初始化為例2,完成數組初始化:
int[] a = new int[2]; //需要指定數組的長度
a[0] = 1;
a[1] = 2;
第三種:使用new關鍵字創建數組,同時為數組中的元素賦值,完成出事化操作。
int[] a = new int[]{1,2,3}; //與第二種方法不同,這里new不需要指定數組的長度,數組長度由其后的初始化操作確定
int[] b = new int[]{
new Integer(1),
new Integer(2),
3
};
以上就是Java數組初始化的相關內容,想要學習更多的Java數組相關內容,可以觀看本站的Java基礎教程,里面有對Java數組的全方位講解,從各種角度讓你徹底學會Java數組。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習