Java中有默认值就不用初始化变量了吗?

Posted dwwzone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中有默认值就不用初始化变量了吗?相关的知识,希望对你有一定的参考价值。

这是一个很常见的现象,不知道大家有没有注意到,直接上代码

大家想想以下代码的运行情况会是什么

public class Main {
    static int a;
    public static void main(String[] args) {
        int b;
        System.out.println(a);
        System.out.println(b);
    }
}

这段代码直接会编译错误,提示没有初始化变量b

原因就在于我们在java类加载总结这篇博文中提到JVM在进行类加载的时候有一个准备阶段,这个阶段会给类变量赋“零”值,但是并不包括局部变量,所以在程序加载完成时,局部变量是没有初始值的,必须我们人为初始化,修改代码

public class Main {
    static int a;
    public static void main(String[] args) {
        int b = 0;
        System.out.println(a);
        System.out.println(b);
    }
}

以上代码输出结果就是 0 0 。

可见类变量会拥有默认值,局部变量不会拥有默认值。

以上是关于Java中有默认值就不用初始化变量了吗?的主要内容,如果未能解决你的问题,请参考以下文章

python 函数中怎么实现static 变量

Java常量与变量(局部变量成员变量)

如何在Python中定义静态变量

Java复习-final

java中变量的作用域

今天你的静态变量和静态代码块执行了吗?