首页 > 解决方案 > Java 中 System 类的 out 对象是什么时候初始化的?

问题描述

修改为 as 的变量final必须在声明或执行构造函数时进行初始化。

我在System Class File中查找,发现outObject在方法中被初始化,这个private static void initializeSystemClass()方法是什么时候调用的?

标签: javafinal

解决方案


JVM根据类中的注释调用此方法System。在下面添加了部分评论:

public final class System {

    /* register the natives via the static initializer.
     *
     * VM will invoke the initializeSystemClass method to complete
     * the initialization for this class separated from clinit.
     * Note that to use properties set by the VM, see the constraints
     * described in the initializeSystemClass method.
     */
    private static native void registerNatives();
    static {
        registerNatives();
    }

    /** Don't let anyone instantiate this class */
    private System() {
    }

推荐阅读