Java陣列一定要初始化才能使用嗎?
陣列是大多數程式語言提供的一種複合結構,如果程式需要多個型別相同的變數時,就可以考慮定義一個陣列。Java語言的陣列變數是引用型別的變數,因此具有Java獨有的特性。
在正常的Java開發中,使用Java陣列之前,我們都會對陣列進行初始化,為陣列中的元素分配記憶體空間、賦值等,但Java陣列一定要初始化嗎?不初始化可以 麼?
其實,java的陣列變數是引用型別的變數,並不是陣列物件本身,只要讓陣列變數指向有效的陣列物件,程式中就可使用該陣列變數,比如下面這個例子:
public class T { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //定義並初始化nums陣列 int nums[] = new int[]{3,13,4,6}; //定義一個prices陣列變數 int prices[]; //讓prices陣列指向nums所引用的陣列 prices = nums; for(int i=0;i<prices.length;i++){ System.out.println(prices[i]); } //將prices陣列的第三個元素賦值為100 prices[2] = 100; //訪問nums陣列的第三個元素 將看到陣列100 System.out.println(nums[2]); } }
從上面程式碼可以看出,定義了prices陣列之後,並未對prices陣列進行初始化。 當執行int prices[]之後,
程式的記憶體分配如圖
從圖可以看出,此時的prices陣列還未指向任何有效的記憶體,未指向任何陣列物件,此時的程式還不可使用prices陣列變數。
當程式執行prices = nums之後,prices變數將指向nums變數所引用的陣列,此時prices變數和nums變數引用同一個陣列物件。
執行這條語句之後,prices變數已經指向有效的記憶體及一個長度為4的陣列物件,因此程式完全可以正常使用prices變數了。
對於陣列變數來說,它並不需要進行所謂的初始化,只要讓陣列變數指向一個有效的陣列物件,程式即可正常使用該陣列變數。
所以,Java語言中的陣列,不一定要初始化也可正常使用。Java初學者可以嘗試用上面這裡例子的方法,實際操作一下,加深印象。最後,希望小編的分享對大家有幫助。
相關文章
- 不初始化,Java陣列如何使用?Java陣列
- Java 中初始化陣列Java陣列
- Java陣列03:陣列使用Java陣列
- Java陣列初始化三種方式Java陣列
- 【Java】陣列使用Java陣列
- [JAVA] Java 陣列、多維陣列,動態、靜態初始化,陣列JVM記憶體模型分析Java陣列JVM記憶體模型
- 一定要有密碼才能刪除資料庫的表嗎?密碼資料庫
- Java陣列的使用Java陣列
- Java陣列如何實現動態初始化Java陣列
- 陣列的初始化陣列
- 新版本一定要用PDO才能連線資料庫了嗎?資料庫
- c#列舉與陣列初始化及使用小記C#陣列
- C#初始化陣列C#陣列
- 利用指標初始化一個三維陣列,只使用一層迴圈指標陣列
- Java 中的陣列 如何使用Java陣列
- 用一層for迴圈初始化三維陣列陣列
- javascript中一維和二維陣列初始化JavaScript陣列
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- java二維陣列定義初始化-楊輝三角Java陣列
- 域名變一定要購買雲伺服器才能有備案申請號嗎?伺服器
- Java 陣列Java陣列
- java——陣列Java陣列
- Java陣列Java陣列
- AIRCHECK G2一定要配合天線使用嗎AI
- 初識Java(Java陣列-陣列的基本操作)Java陣列
- 6-Java基礎語法-陣列之一維陣列Java陣列
- GNU C中陣列指定初始化陣列
- 陣列的三種初始化方式陣列
- C++ 陣列宣告和初始化C++陣列
- java日期 java陣列Java陣列
- Java 二維陣列轉一維Java陣列
- java中排序一個字串陣列Java排序字串陣列
- scala陣列與java陣列對比陣列Java
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- Java中使用HashMap時指定初始化容量效能一定會更好嗎?JavaHashMap
- Java的 陣列Java陣列
- Java(二)陣列Java陣列
- JAVA陣列案例!Java陣列