这个问题尤其适用于 java 语言。我知道为所有静态代码预留了一个静态内存部分。
我的问题是这个静态内存是如何填充的?静态对象是在导入时还是在第一次引用时放入静态内存中的?此外,对于静态对象是否适用与所有其他对象相同的垃圾收集规则?
public class Example{
public static SomeObject someO = new SomeObject();
}
/********************************/
// Is the static object put into static memory at this point?
import somepackage.Example;
public class MainApp{
public static void main( Sting args[] ){
// Or is the static object put into memory at first reference?
Example.someO.someMethod();
// Do the same garbage collection rules apply to a
// static object as they do all others?
Example.someO = null;
System.gc();
}
}