Afzaal Ahmad Zeeshan
Почему бы тебе не попробовать и не посмотреть самому? В первом подходе вы создаете массив и инициализируете его значениями в том же go.
В первом подходе вы создаете массив—int является примитивным типом, поэтому они не являются null-ed, и вы в конечном итоге создаете объект и по умолчанию равняетесь нулю. Попробуйте этот код,
int[] array = new int[5]; // Defaults to 0
System.out.println(array[3]); // 4th object exists; 0.
// Outputs
// 0
Второй подход является одновременно читабельным и хорошим для JVM, в этом случае вы создаете массив и инициализируете его значениями по умолчанию.
int[] array = { 1, 2, 3, 4, 5 };
System.out.println(array[3]);
// Outputs
// 4
Это означает, что JVM настраивает вещи для вас. Чтобы сделать вещи простыми, они оба такие же, как,
int a;
a = 5;
// And
int a = 5;
Какой из них лучше? Во-первых, это хорошо, если вы не знаете значения во время объявления, а во-вторых, лучше, если вы знаете. Второй подход был бы избыточным вызовом (согласно компилятору), если вам также нужно взять входные данные и установить их в следующем вызове. Я оставляю этот выбор в ваших руках.
На мой взгляд, перейдите ко второму подходу, если вы не принимаете входные данные от пользователей для каждого элемента, то имеет смысл инициализировать массив и считывать входные данные из потока. Кроме того, я всегда был бы признателен за код, который имеет второй подход.
Вы можете играть с этим онлайн,
http://tpcg.io/wPt4ZI.