Java 中静态方法的范围是什么?
1) (Eclipse) Project level
2) Application level
3) JVM level
如果我们有一个类,让您深入了解我的要求:
public class MyClass
{
private static int data;
public static void setData(int val)
{
data = val;
}
public static int getData()
{
return data;
}
}
如果我从不同的类(与 MyClass
在同一个项目中)调用 setData()
方法并传递一个值,比如 10,将会我能够从不同的项目访问设置的数据
(即值10)吗?来自不同的应用程序?等等-
或者,我到底需要做什么才能从不同的(eclipse)项目访问相同的数据
(即10)?
如果有与此相关的官方文档,请告诉我。
最佳答案
你问的是引用范围还是存在范围?在给定标准 Java 包命名/作用域规则的情况下,任何可以访问该方法的类的类都可以访问公共(public)静态方法。请注意,这意味着(作为规则的一部分)访问权限仅适用于同一 JVM 中的类。
数据的存在范围仅限于代表正在加载的类的java.lang.Class
实例(我是当然有一些奇特的术语来形容这一点)。这最多会持续到 JVM 执行结束,但在某些情况下,类可以提前“卸载”。
还应该注意的是,给定类的多个副本(java.lang.Class
实例)可以同时加载到给定 JVM 中,并且该类的每个副本将有自己的静态变量。然而,这种情况非常罕见。
关于java - Java 中静态方法的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18927856/