繁体   English   中英

什么是Java中静态字段的初始化程序

[英]What is initializers for static fields in Java

我从Oracle Java教程得到以下代码你可以在这里找到这个在“12.4。类和接口的初始化”标题下的执行

类的初始化包括执行其静态初始化程序和类中声明的静态字段(类变量)的初始化程序。

如果有人向我解释如何“静态字段的初始化器”指的是“类变量”,那将会很棒。

“类变量”是声明为类的static属性的变量。 通过“静态字段的初始化器”,它们指的是这些静态变量的初始化,这种情况在加载类时发生。 这是一个例子:

public class MyClass {
    private static int num = 0; //This is a class variable being initialized when it is declared
}

初始化静态字段的另一种方法是使用静态块:

public class MyClass {
    private static int num;
    static {
        num = 0; //This a class variable being initialized in a static block
    }
}

加载类时,这些静态块从上到下运行。

最后,引用试图说“类变量”只是“静态字段”的另一个名称。

static成员是一个整体属于该类的变量,而不是特定的实例。 当类加载器加载类时,它被初始化一次。

例如:

public class MyClass {
    // Note the static modifier here!
    private static int someVariable = 7;
}

这些变量的一个常见用例是不可变类型的static final成员或用于表示常量的基元:

public class Human {
    public static final String SPECIES = "Homo sapiens";
    public static final int LEGAL_DRINKING_AGE = 21; // U.S centric code :-(
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM