Why don't you try and see for yourself? In the first approach, you are creating the array and initializing it with the values in the same go.
In the first approach, you are creating the array—int is a primitive type, thus they are not null-ed, and you end up with object creation and defaulted to zero. Try this code,
int[] array = new int[5];
System.out.println(array[3]);
The second approach is both, readable and good for the JVM, in this, you create the array and initialize it with the default values.
int[] array = { 1, 2, 3, 4, 5 };
System.out.println(array[3]);
This means that JVM setup things for you. To make things simple, they are both the same as,
int a;
a = 5;
int a = 5;
Which one is better? First one is good if you do not know the value at the declaration time, and second is better if you know. Second approach would be redundant call (as per compiler), if you also have to take the input and set it in the next call. I leave that choice in your hand.
In my opinion, go for the second approach, unless you are taking input from the users for each element then it makes sense to initialize the array and read the input from a stream. Other than that, I would always appreciate the code that has second approach.
You can play with this online,
http://tpcg.io/wPt4ZI.