相关疑难解决方法(0)

Java类和静态块

class Hello12 {
    static int b = 10;
    static {
        b = 100;
    }
}

class sample {
    public static void main(String args[]) {
        System.out.println(Hello12.b);
    }
}
Run Code Online (Sandbox Code Playgroud)

在运行上面的代码时,输​​出为100,因为当我调用Hello类时,首先执行静态块,将b的值设置为100并显示它.但是当我写这段代码时:

class Hello12 {
    static {
         b = 100;
    }
    static int b = 10;
}

class sample {
    public static void main(String args[]) {
        System.out.println(Hello12.b);
    }
}
Run Code Online (Sandbox Code Playgroud)

这里的输出为10.我希望答案为100,因为一旦执行静态块,它给b的值为100.所以在main()中,我调用Hello.b它应该引用b(= 100) .两个代码中的内存如何分配给b?

java static

28
推荐指数
3
解决办法
1135
查看次数

标签 统计

java ×1

static ×1