java: primitive arrays -- are they initialized?
I开发者_C百科f I use a statement in my code like
int[] a = new int[42];
Will it initialize the array to anything in particular? (e.g. 0) I seem to remember this is documented somewhere but I am not sure what to search for.
At 15.10 Array Creation Expressions the JLS says
[...] a single-dimensional array is created of the specified length, and each component of the array is initialized to its default value
and at 4.12.5 Initial Values of Variables it says:
For type
int
, the default value is zero, that is,0
.
When created, arrays are automatically initialized with the default value of their type - in your case that would be 0
. The default is false
for boolean
and null
for all reference types.
The array would be initialized with 42 0s
For other data types it would be initialized with the default value ie.
new boolean[42]; // would have 42 falses
new double[42]; // would have 42 0.0 ( or 0.0D )
new float[42]; // 42 0.0fs
new long[42]; // 42 0Ls
And so on.
For objects in general it would be null:
String [] sa = new String[42]; // 42 nulls
Date [] da = new Date[42]; // 42 nulls
All elements in the array are initialized to zero. I haven't been able to find evidence of that in the Java documentation but I just ran this to confirm:
int[] arrayTest = new int[10];
System.out.println(arrayTest[5]) // prints zero
精彩评论