问题描述
所以我声明和初始化一个int数组:
So I'm declaring and initializing an int array:
static final int UN = 0;
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = UN;
}
说我这样做,而不是...
Say I do this instead...
int[] arr = new int[5];
System.out.println(arr[0]);
... 0
将打印到标准输出。另外,如果我这样做:
... 0
will print to standard out. Also, if I do this:
static final int UN = 0;
int[] arr = new int[5];
System.out.println(arr[0]==UN);
... 真正
将打印到标准输出。因此,如何初始化的Java默认情况下,我的阵列?它是安全的假设,默认初始化数组索引设置为 0
这将意味着我不通过数组必须循环和初始化呢?
... true
will print to standard out. So how is Java initializing my array by default? Is it safe to assume that the default initialization is setting the array indices to 0
which would mean I don't have to loop through the array and initialize it?
感谢。
推荐答案
一切都在Java中没有明确设置的东西,被初始化为一个零值。
Everything in Java not explicitly set to something, is initialized to a zero value.
- 对于引用(任何持有对象)中
空
。 - 对于int /短路/字节是0。
- 对于浮点/双精度是0.0
- 对于布尔值,这是一个假的。
当您创建的东西阵列,所有参赛作品也被归零。所以你的数组包含五个零它被创建后右新
。
When you create an array of something, all entries are also zeroed. So your array contains five zeros right after it is created by new
.
这篇关于什么是Java中的数组的默认初始化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!