开发者社区> 问答> 正文

Java中数组的默认初始化是什么?

所以我要声明并初始化一个int数组:

static final int UN = 0; int[] arr = new int[size]; for (int i = 0; i < size; i++) { arr[i] = UN; } 说我改为这样做...

int[] arr = new int[5]; System.out.println(arr[0]); ... 0将按标准输出。另外,如果我这样做:

static final int UN = 0; int[] arr = new int[5]; System.out.println(arr[0]==UN); ... true将按标准输出。那么Java默认如何初始化我的数组?是否可以安全地假设默认的初始化将数组索引设置为零,0这意味着我不必遍历数组并对其进行初始化?

谢谢。

问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 00:55:58 490 0
1 条回答
写回答
取消 提交回答
  • Java程序中未由程序员明确设置为所有内容的所有内容都初始化为零值。

    对于的引用(任何包含对象的内容)null。 对于int / short / byte / long,它是一个0。 对于float / double,这是一个 0.0 对于布尔值,则为false。 对于char是空字符'\u0000'(其十进制等效值为0)。 当您创建某物的数组时,所有条目也会被清零。因此,您的数组在由创建后立即包含五个零new。

    注意(基于注释):分配局部变量时,不需要Java虚拟机将基础内存清零(如果需要,这可以进行有效的堆栈操作),因此为了避免随机值,Java语言规范要求初始化局部变量。

    2020-02-07 00:56:15
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载