1、饿汉模块 登录后复制 package com.zhaochao.singleton; /** * 饿汉模式 * @author Administrator */ public class SingletonManager { //静态成员变量,类加载时创建实例 private static SingletonManager instance=new SingletonManager(); //私有化构造函数,防止创建对象 private SingletonManager() {} //对外提供获取唯一对象方法 public static SingletonManager getInstance(){ return instance; } } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16. 2.懒汉模块 登录后复制 package com.zhaochao.singleton; /** * 懒汉模式 * @author Administrator * */ public class SingletionManager2 { //静态化成员变量,不创建对象 private static SingletionManager2 instance; //私有化构造函数 private SingletionManager2() {} //在使用时创建对象 public static SingletionManager2 getInstance(){ //线程不安全,当多个线程同时检测到对象都为null时,都会去创建对象,这样就不是单例了 if(instance==null){ instance=new SingletionManager2(); } return instance; } } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21. 3.内部类模式 登录后复制 package com.zhaochao.singleton; /** * 升级版饿汉模式 * @author Administrator */ public class SingletonManager3 { private SingletonManager3(){} private static class SingletonManagerHolder { private final static SingletonManager3 INSTANCE = new SingletonManager3(); } public static SingletonManager3 getInstance() { return SingletonManagerHolder.INSTANCE; } } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19. 原创作者: u_4937244 转载于: https://blog.51cto.com/u_4937244/11575502