天天看点

Java - 一个单例

    单例,一个屡见不鲜的面试问题,更是java(其实不仅仅是java)的基础问题。但依然有很多人不能写出一个完完整整的例子。

    最为常见的错误:

public class singleton{

  public static singleton demo;

  public static singleton getsingleton(){

    if(demo==null) demo = new singleton();

    return demo;

  }

}

错误有两点:

a:构造方法没有私有化,在其它类中依然可以使用new关键字来创建对象;

b:get方法没有同步,或者说没有加锁,无法确保只有一个对象。

完整的例子:

  private singleton(){}

  public static synchronized singleton getsingleton(){

其实,能够在里面加入泛型是最好的。。。