Java单例模式的饥饿实现

时间:2017-07-05 16:35:13

标签: java static singleton

我有一些像这样的代码

JTextArea
  1. 这是Java中单例模式的一个饥饿实现,我们知道实例是在调用getInstance之前创建的。

  2. 我们也知道在实例化类MySingleton时将实例化静态成员。只有在上面的代码中调用了getInstance时,才会实例化MySingleton类。因此,在调用getInstance之后创建了实例。

  3. 哪一个是对的?

    为什么?

    问题不重复。

    它没有讨论静态类初始化何时发生,但是对单例模式的饥饿实现有些怀疑。

    在这种情况下,在第一次调用getInstance之前,几乎肯定不会初始化此问题中发布的类。

1 个答案:

答案 0 :(得分:0)

第二个语句为false,静态成员在加载它们所在的类时被初始化,而不是在创建该类的第一个实例时。

很容易显示,因为您不需要类的实例来访问其静态成员 即 MyClass.intVar = 5工作正常。 您不需要首先实例化MyClass。