相关疑难解决方法(0)

Java:初始化静态最终字段的顺序是什么?

好吧,所以说我有一个看起来像这样的课程:

public class SignupServlet extends HttpServlet {
    private static final Logger SERVLET_LOGGER=COMPANYLog.open(SignupServlet.class);
    private static final ExceptionMessageHandler handler = new ExceptionMessageHandler();   
    private static final SignupServletObservableAgent signupObservableAgent = 
        new SignupServletObservableAgent(null, SERVLET_LOGGER);
}
Run Code Online (Sandbox Code Playgroud)

我可以指望类加载器按顺序初始化这些字段,这样我可以依赖SERVLET_LOGGER在signupObservableAgent之前实例化吗?

java static final initialization classloader

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

哪个会加载第一个静态块或静态变量?

正如我读到的那样,每个人都说首先会执行静态块,但是当我运行一段代码时,我发现静态变量首先加载.现在这让我感到困惑,请给出正确的解释.

public class MyClass 
{
    static int x=show();
    static
    {
        System.out.println("Hello Mayar");
    }
    public static int show()
    {
        System.out.println("Hello Show");
        return 1;
    }
    public static void main(String a[])
    {
        System.out.println("Hello Main");
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

Hello Show
Hello Mayar
Hello Main
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
489
查看次数

标签 统计

java ×2

classloader ×1

final ×1

initialization ×1

static ×1