gpt4 book ai didi

java - Java 为什么会为你初始化变量呢?

转载 作者:行者123 更新时间:2023-12-01 06:57:52 25 4
gpt4 key购买 nike

public class test {
public static void main(String[] args) {
int MAX = 5;
boolean bit[] = new boolean[MAX];
float[] value = new float[2*3];
int[] number = {10, 9, 8, 7, 6};
System.out.println(bit[0]); // prints “false”
System.out.println(value[3]); // prints “0.0”
System.out.println(number[1]); // prints “9”
}
}

我正在测试上面的代码,为什么Java会为你初始化这些值?我认为如果我不初始化变量,它应该抛出编译错误。另外,如果我想将它们全部初始化为 0.0,我应该对 float[] value = new float[2*3]; 行做什么?

最佳答案

静态变量和实例变量以及数组元素被初始化为默认值(0、false、'\0'、null 等)。默认情况下,局部变量不会初始化。

在您的代码中,只有数组元素未显式初始化 - 编译器将很难确定您尝试使用的每个数组元素是否已初始化。例如,如果数组来自参数,您希望发生什么?

来自 Java 语言规范,section 15.10.1 :

Then, if a single DimExpr appears, a single-dimensional array is created of the specified length, and each component of the array is initialized to its default value (§4.12.5).

(这就是您所处的情况 - DimExpr 是您的 3 * 2 表达式。)

关于java - Java 为什么会为你初始化变量呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7405323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com