Инициализатор массива может быть указан в объявлении, или как часть выражения создания массива (§15.10), создавая массив и предоставляя некоторые начальные значения:
Ответ 2
Абсолютно идентичный. Второе разрешено сокращать для первого (только когда, как здесь, это делается как часть объявления переменной.
Ответ 3
В Java все объекты живут в куче, поскольку массивы являются объектами в Java, они живут в стеке.
для этих двух нет разницы в результате, у вас будут два объекта массива с одинаковыми элементами.
Однако иногда вы столкнетесь с ситуациями, когда вы не можете их использовать, например, вы не знаете элементов массива. то вы застряли в этой форме:
Object [] array=new Object[size];
Ответ 4
Есть еще небольшая и запоминающаяся разница!
Вы можете сделать
int[] arr;
arr= {1,2,3}; // Illegal
Но вы можете очень хорошо сделать
int[] arr;
arr = new [] {1,2,3} //Legal
Также, если вы хотите инициализировать позже, вы не сможете выполнить