相关疑难解决方法(0)

以什么顺序执行的类中的静态块和静态变量?

可能重复:
Java静态类初始化

为什么字符串变量在初始化块中更新而不是整数(即使先写入块)

class NewClass
{
    static 
    {
       System.out.println(NewClass.string+" "+NewClass.integer);
    }

    final static String string="static";
    final static Integer integer=1;

    public static void main(String [] args)//throws Exception
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我的输出是

static null
Run Code Online (Sandbox Code Playgroud)

PS:还注意到只有当我插入final修饰符时,字符串变量初始化才会发生在块之前.为什么会这样?为什么不是整数?我已经将它声明为最终静态

java static final

16
推荐指数
2
解决办法
1万
查看次数

标签 统计

final ×1

java ×1

static ×1