I know it's needed when making an array with no initial value, but, what's the difference between
char[] carr = {'a', 'b', 'c', 'd'};
and
char[] carr = new char[] {'a', 'b', 'c', 'd'};
?
We're a place where coders share, stay up-to-date and grow their careers.
I know it's needed when making an array with no initial value, but, what's the difference between
char[] carr = {'a', 'b', 'c', 'd'};
and
char[] carr = new char[] {'a', 'b', 'c', 'd'};
?
Bobby Iliev -
Maverick -
Akash Upadhyay -
Ben Halpern -
Discussion
The difference is simply that in one form, you have less typing, and the person reviewing your code has less reading.
That's it, it's just syntax. They will both actually create a new array in memory.
But maybe this needs to get a little "off-piste", and this is only really referenced because you're using an array of char... you should probably consider String (speed vs memory usage trade-off). In most situations, an array of char is simply faster, but if you have a lot of them, and don't access them all that often, String gets better memory management in Java.
Consider the following code:
How many objects are created? If I look in my IDE:

We have 3 unique objects (given away by the numbers after the @ symbol).
Now for String, it's actually backed by a char array...

Note that they all have the same Object ID, so we have 3 references to the same object.
Memory management is something that a lot of Java developers (at all levels) simply don't think about, but we should, in my opinion.