Много ответов здесь. Добавление нескольких хитрых способов создания массивов (с точки зрения экзамена это полезно знать)
объявить и определить массив
int intArray[] = new int[3];
это создаст массив длины 3. Поскольку он содержит примитивный тип int, все значения по умолчанию равны 0.Например,
intArray[2]; // will return 0
Использование квадратных скобок [] перед именем переменной
int[] intArray = new int[3];
intArray[0] = 1; // array content now {1,0,0}
Инициализация и предоставление данных в массив
int[] intArray = new int[]{1,2,3};
на этот раз не нужно указывать размер в скобках. Даже простой вариант это
int[] intArray = {1,2,3,4};
Массив длины 0
int[] intArray = new int[0];
int length = intArray.length; // will return length 0
Аналогично для многомерных массивов
int intArray[][] = new int[2][3];
// This will create an array of length 2 and
//each element contains another array of length 3.
// { {0,0,0},{0,0,0} }
int lenght1 = intArray.length; // will return 2
int length2 = intArray[0].length; // will return 3
Использование скобок перед переменной
int[][] intArray = new int[2][3];
это абсолютно нормально, если вы поставите один кронштейн для коробки в конце
int[] intArray [] = new int[2][4];
int[] intArray[][] = new int[2][3][4]
Некоторые примеры
int [] intArray [] = new int[][] {{1,2,3},{4,5,6}};
int [] intArray1 [] = new int[][] {new int[] {1,2,3}, new int [] {4,5,6}};
int [] intArray2 [] = new int[][] {new int[] {1,2,3},{4,5,6}}
// All the 3 arrays assignments are valid
//Array looks like {{1,2,3},{4,5,6}}
Не обязательно, чтобы каждый внутренний элемент был одинакового размера.
int [][] intArray = new int[2][];
intArray[0] = {1,2,3};
intArray[1] = {4,5};
//array looks like {{1,2,3},{4,5}}
int[][] intArray = new int[][2] ; // this won't compile keep this in mind.
Вы должны убедиться, что используете вышеприведенный синтаксис, в прямом направлении вы должны указать значения в скобках. Иначе он не будет компилироваться. Некоторые примеры:
int [][][] intArray = new int[1][][];
int [][][] intArray = new int[1][2][];
int [][][] intArray = new int[1][2][3];
Другая важная особенность - ковариант
Number[] numArray = {1,2,3,4}; // java.lang.Number
numArray[0] = new Float(1.5f); // java.lang.Float
numArray[1] = new Integer(1); // java.lang.Integer
//You can store a subclass object in an array that is declared
// to be of the type of its superclass.
// Here Number is the superclass for both Float and Integer.
Number num[] = new Float[5]; // this is also valid
IMP: Для ссылочных типов значение по умолчанию, сохраненное в массиве, равно нулю.