开发者

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜