静态块运行时间/编译时间?

时间:2014-06-11 05:45:28

标签: java static runtime compile-time non-static

我是Java的新手,遇到过Static Block。据我所知,所有静态语句(静态初始化,静态块等)在代码执行之前一起运行。

我怀疑这是在运行时还是编译时发生的?

在编译期间,代码将转换为机器语言,并在运行时执行此机器语言代码。那么,在编译期间是否更改了执行顺序,并且所有静态语句在代码开头放在一起,以便它们在其他任何内容之前执行?

很抱歉,如果这看起来像一个非常简单的问题..

2 个答案:

答案 0 :(得分:0)

它们在运行时加载。

静态意味着:变量属于类,而不属于类的实例。因此,每个静态变量只有一个值,如果你有n个类的实例,则不是n个值。

答案 1 :(得分:0)

JVM(类加载器)加载StaticClass时(在代码中第一次引用它时),正在运行静态初始化块。

有关推荐static block in java

的详细信息