【发布时间】:2015-09-11 07:11:04
【问题描述】:
这个问题是关于 java 中的内存管理和 GC 的。
由于java没有像C#那样真正的静态类,那么类中静态成员的范围是什么,如下所示:
public class Test {
public static String myVariable;
}
假设 Test.myVariable 在另一个类 Foo 中设置/调用。
只要 Foo 还活着,Test.myVariable 就一直活着吗?
或
只要应用程序域还在,Test.myVariable 会一直保持活动状态吗?
myVariable 何时会超出范围?
【问题讨论】:
-
一点也不。任何有权访问
Test的类都可以访问公共静态成员。 -
我正在考虑 Test.myVariable 被访问一次的场景。
-
所有,我已经澄清了这个问题,因为它处理的是内存范围而不是访问范围。
-
您在文档中发现了哪些您不理解的地方?听起来好像只要加载了
Test,它就应该在范围内。 -
@PJTrailll 加载是什么意思?测试永远不会自己实例化。只有 Test.myVariable 被调用 - 它在什么时候超出范围?
标签: java variables static scope