如何传递静态/类变量的值?

Aar*_*ron 3 java static-members class-variables

静态/类变量在类型/类中定义,并且被称为与其定义的类型/类相关联,并且独立于类型/类的实例.类型/类中只有一个静态/类变量,最好用于常量like属性,其值在类的任何实例中都很常见.静态/类变量的状态始终存在于类中,因此在类中的任何时刻只有一个变量,而关键字static用于定义变量的这种性质.最佳实践中的static/class变量将初始化一次,并使用关键字final确保.最终的静态变量将使用不可变的集合进行初始化,如新的String()或new Integer();

现在我的问题是静态变量的值是如何使用的?这个变量的用途是什么?例如,它是从包含它的类中复制它的值还是它是对类中变量的显式引用?

例如

class GenericType {
    private final static String commonValue = new String("foobar");
} 
class AnotherGenericType {
    public static void main(String[] args) {
        System.out.println(GenericType.commonValue); //Displays foobar in the console.

    }
}
Run Code Online (Sandbox Code Playgroud)

cor*_*iKa 5

存在专门用于存储static变量的空间.这在JLS,8.3.1.1中规定,其中说明了这一点

如果一个字段被声明为static,那么无论该类最终可以创建多少个实例(可能为零),都只存在该字段的一个化身.初始化类时,会生成静态字段(有时称为类变量).

值得注意的是,在卸载类(通常不会经常发生)之前,这些变量对于收集的垃圾是不开放的,这可能会导致意外的内存引用.

访问静态成员可能被称为"静态访问"(我以前听说过它)但通常它没有自己的术语.