java静态类/变量

时间:2012-03-29 21:33:11

标签: java static final

不确定静态变量。

import java.io.File;

public class Logger {
    public static final File log = new File(File.listRoots()[0], "log.log");
    public static void log (String message) {
        /* ... */
    }
}

变量log在程序的整个生命周期中是否指向同一个内存?基本上log定义new File(File.listRoots()[0], "log.log")计算多次或只计算一次,何时计算?

提前致谢。

2 个答案:

答案 0 :(得分:11)

每个类加载器调用一次。通常,这意味着一次。

一旦类声明它被类加载器加载,静态变量就会被初始化,并保持在那里直到类加载器被销毁,这在大多数情况下意味着 - 在程序执行/应用程序生命周期结束时。

答案 1 :(得分:0)

只有一次。 AFAIK,当班级加载时。