繁体   English   中英

声明时初始化变量的值[重复]

[英]Initialize value of variable while declaration [duplicate]

这个问题已经在这里有了答案:

有人可以解释一下为什么下面的程序产生100吗? 我期望1010 ;

public final class Testing {
    static int j = function1();
    static int i = 10;

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

    public static int function1() {
    return i;
    }

}

static变量按照它们在类源代码中出现的顺序进行初始化。 因此,当初始化j时,默认情况下i仍为0 ,因此function1返回0j初始化为0

j初始化为0 ,将i初始化为10 ,并且您的main菜单打印100

JLS 12.4.2

接下来, 以文本顺序执行类的类变量初始化器和静态初始化器,或者接口的字段初始化器,就好像它们是单个块一样

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM