2014-07-16 61 views
-2

我有一个Java类:什么时候一个静态变量是真正初始化

Class A { 
    static Object a = new Object(); 
    Object getObject() { 
    return a; 
    } 
} 

在上面的代码中。我想询问object a是否真正初始化。我对我的问题有两个答案:

  1. Java程序启动时。 a会自动初始化,尽管我们永远不会使用它。

  2. 我们第一次调用getObject()。所以,我认为这会更加优化。

我不知道幕后的真实情况。

+0

*我不知道背后的真实情况。*请在提问前做一些调查。 –

+0

请参阅http://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4 – ajb

回答

1

当JVM加载类A时,它执行“静态”代码块并初始化静态变量。

相关问题