3 回答

TA貢獻1844條經驗 獲得超8個贊
這是對的。
A[] a = new A[4];
創建4個A引用,類似于這樣做
A a1;A a2;A a3;A a4;
現在你不能在不分配a1的情況下執行a1.someMethod()
a1 = new A();
同樣,您需要使用陣列
a[0] = new A();
在使用它之前。

TA貢獻1909條經驗 獲得超7個贊
這是對的。你也可以這樣做:
A[] a = new A[] { new A("args"), new A("other args"), .. };
此語法還可用于在任何位置創建和初始化數組,例如在方法參數中:
someMethod( new A[] { new A("args"), new A("other args"), . . } )

TA貢獻1831條經驗 獲得超10個贊
是的,它只創建引用,將其設置為默認值null。這就是你得到NullPointerException的原因你需要單獨創建對象并分配引用。在Java中創建數組有3個步驟 -
聲明 - 在此步驟中,我們指定數據類型和要創建的數組的維度。但請記住,我們還沒有提到尺寸的大小。他們是空的。
實例化 - 在此步驟中,我們使用new關鍵字創建數組或為數組分配內存。在這一步中,我們提到了陣列尺寸的大小。
初始化 - 數組始終初始化為數據類型的默認值。但我們可以進行自己的初始化。
在Java中聲明數組
這是我們在Java中聲明一維數組的方法 -
int[] array;
int array[];
Oracle建議您使用以前的語法來聲明數組。以下是法律聲明的其他一些例子 -
// One Dimensional Arrays
int[] intArray; // Good
double[] doubleArray;
// One Dimensional Arrays
byte byteArray[]; // Ugly!
long longArray[];
// Two Dimensional Arrays
int[][] int2DArray; // Good
double[][] double2DArray;
// Two Dimensional Arrays
byte[] byte2DArray[]; // Ugly
long[] long2DArray[];
這些是非法聲明的一些例子 -
int[5] intArray; // Don't mention size!
double{} doubleArray; // Square Brackets please!
實例化
這就是我們“實例化”或為數組分配內存的方法 -
int[] array = new int[5];
當JVM遇到new關鍵字時,它理解它必須為某些東西分配內存。通過指定int[5],我們意味著我們需要一個int大小為5 的s 數組。因此,JVM創建內存并將新分配的內存的引用分配給類型為“引用”的類型int[]
初始化
使用循環 - 使用for循環初始化數組元素是獲取數組的最常用方法。如果您要自己分配默認值,則無需運行for循環,因為JVM會為您執行此操作。
一體..! - 我們可以一次性聲明,實例化和初始化我們的數組。這是語法 -
int[] arr = {1, 2, 3, 4, 5};
在這里,我們沒有提到大小,因為JVM可以看到我們給出了5個值。
因此,在我們實例化之前,引用保持為null。我希望我的回答能幫助你......!:)
源 - Java中的數組
添加回答
舉報