Java默认初始化是在类中,但不是方法[重复]

问题描述 投票:-1回答:1

我只是想知道,为什么Java在这种情况下会进行默认初始化?

public class TestClass {

    static boolean testBool;

    public static void main(String[] args) {
        System.out.println(testBool);
    }
}

但在这种情况下不是:

public class TestClass {

    public static void main(String[] args) {
        boolean testBool;
        System.out.println(testBool);
    }
}

这两个变体背后的合理性是什么?

java class variables compiler-errors initialization
1个回答
0
投票

根据java documentation

不一定总是需要分配一个 声明字段时的值。领域 声明但未初始化的 将被设置为合理的默认值 编译器。一般来说,这 默认值为零或null, 取决于数据类型。靠 这样的默认值是 通常被认为是不好的编程 样式。

Default values

局部变量略 不同;编译器从不分配 默认值为未初始化 局部变量。如果你不能 初始化您的局部变量 已声明,请确保分配它 尝试使用它之前的值。 访问未初始化的本地 变量将导致编译时 错误。

© www.soinside.com 2019 - 2024. All rights reserved.