java - int 数据类型初始化 : Array vs Regular

标签 java arrays

class returntest
{
    public static void main(String...args)
    {
        int a;
        System.out.println(a); //Line 1

        int b[] = new int[10];
        System.out.println(b[1]); //Line 2
    }
}

我在第 1 行收到编译器错误(很明显),指出变量可能尚未初始化。

我知道默认情况下所有 int 数组元素都初始化为 0(因此第 2 行编译成功)但我的问题是为什么编译器不能将相同的逻辑(将所有 int 设置为 0)应用于常规(非数组)int变量。

是否有任何限制禁止编译器这样做?

最佳答案

在语句 block 中定义的局部变量始终必须在使用前进行初始化。

但是成员变量,那些直接在类主体中定义的变量,在创建对象时会自动初始化为 0。

有用的线程 here .

关于java - int 数据类型初始化 : Array vs Regular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18545583/

相关文章:

java - 单点登录 (SSO) 标准 Web 管理应用程序

java - 使用 JNDI 作为我的数据源和属性文件的位置

arrays - Swift Alamofire 将值赋给字符串

java - 如何验证用户输入的整数?

java - Java 中将基元或对象放入对象映射中的区别

java - maven-jmod-plugin :3. 0.0-alpha-1 给出错误创建失败。非法参数异常

c++ - 使用 nlohmann C++ 库读取 json 对象数组

java - 显示数组中的列表,以数字方式输入数据

将 const char 转换为数组

arrays - unshare() 和 copy() 有什么区别?