我想知道静态变量(在一个类中)何时进入图像(初始化)?它是在第一次调用实例构造函数之后还是在类加载之后?什么时候加载类?
究竟在Bar类中调用Foo.SomeCheck()时会发生什么?是否为了调用SomeCheck()而创建了一个Foo实例?如果是这样,这个实例是否存储在堆上,是否通过垃圾收集进行收集?
public class Foo() {
public static bool SomeCheck() {
return true;
}
}
public class Bar() {
public void SomeMethod() {
// what happens when we access Foo to call SomeCheck?
if (Foo.SomeCheck()) {
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)