成员应该在类或构造函数中初始化吗?

Chr*_*ium 7 java

初始化变量,特别是类级别的对象引用是一个好习惯吗?请考虑以下示例;

public class MyClass {

    private static MyObject myObject;

    public static void main(String[] args) {

        myObject = new MyObject();
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

public class MyClass {

    private MyObject myObject = new MyObject();

    public static void main(String[] args) {

          // Other code
    }
}
Run Code Online (Sandbox Code Playgroud)

哪种方式最好?请指导我们两者的利弊.

问候.

Tod*_*odd 6

通常,延迟实例化(第一个片段)是首选,因为该对象具有(可能)更短的生命周期.您应该支持尽可能短的对象生命周期.