在java程序中创建实例时?

时间:2012-12-09 11:38:46

标签: java singleton instance

我想为java编写单例类。 我找到了一个示例程序,如下所示。

public class Singleton {
  private static Singleton singleton = new Singleton();

  private Singleton() {
    System.out.println("instance is created.");
  }

  public static Singleton getInstance() {
    return singleton;
  }
}

你知道,构造函数是私有方法,没有被调用。

如何创建单例实例?

在java程序中创建实例时?

谢谢。

2 个答案:

答案 0 :(得分:3)

正如Joshua Bloch在他的Effective Java 2nd Edition书中所说,从Java 5开始,实现单例的最佳方法是使用枚举:

public enum Singleton {
    INSTANCE;
    // all the necessary methods go here
}

单例实现的这种模式有助于避免某些序列化/反序列化问题。有关详细信息,请参阅Effective Java 2nd Edition的第3项。

答案 1 :(得分:2)

第一次调用Singleton.getInstance()时将创建单例实例。将加载该类,并初始化单例变量,并由getInstance()方法返回。