java单例模式的实现

来源:互联网 发布:淘宝主播看不到我说话 编辑:程序博客网 时间:2024/05/17 07:57

单例在很多地方都用的到,例如购物车之类的,我现在就把单例实现类写一下供大家交流
我把类的初始话顺序说一下,大家就能很快理解了
  (单个类)1.静态变量2.静态初始化块3.变量4.初始化块5.构造器
   (继承类)1.父类-静态变量2.父类-静态初始化块
                3.子类-静态变量4.子类-静态初始化块
                5.父类-变量6.父类-初始化块7.父类-构造器
                8.子类-变量9.子类-初始化块10.子类-构造器


饱汉模式下的单例:
public class Singleton1 {
private Singleton1(){

}
private static Singleton1 instance = new Singleton1();
public static Singleton1 getInstance(){
return instance;
}
}
这样在类的初始化时就产生了一个单例对象,之后不再产生了!
/**
 * @author Administrator
 *懒汉模式单例的实现
 */
public class Singleton {
public Singleton() {

}
private static Singleton instance= null;
public static synchronized Singleton getInstance(){
if (instance==null) {
instance = new Singleton();
}
return instance;
}
}
初始化类的时候只有在调用getInstance的时候才会产生一个新的实例
synchronized是必须要加的不然的会造成线程不安全!
提倡用第一种创建方式