不确定静态变量。
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")
计算多次或只计算一次,何时计算?
提前致谢。
答案 0 :(得分:11)
每个类加载器调用一次。通常,这意味着一次。
一旦类声明它被类加载器加载,静态变量就会被初始化,并保持在那里直到类加载器被销毁,这在大多数情况下意味着 - 在程序执行/应用程序生命周期结束时。
答案 1 :(得分:0)
只有一次。 AFAIK,当班级加载时。