首页 > 代码库 > Java单例模式

Java单例模式

由于经常用笔记本上网,还是在博客里备份一下自己的学习成果比较好,复习起来也很方便。

从今天开始把自己会的知识总结在博客里。

以下为单例模式里的两种方法的代码:饿汉模式和懒汉模式。

/**
 * 单例模式Singleton
 * 应用场合:有些对象只需要一个就够了,如老婆。。。
 * 作用:保证整个应用程序中某个实例有且只有一个
 * 类型:饿汉模式、懒汉模式
 * 本类为饿汉模式,类加载时就会创建好实例,与调用与否无关
 */
public class Singleton {
    //1、将构造方法私有化,不允许外部直接创建实例化,否则可以new无数个对象
    private Singleton(){
        
    }
    //2、创建类的唯一实例,由于第3步必须static,所以instance实例也必须是static
    private static Singleton instance = new Singleton();
    
    //3、提供一个用于获取实例的方法,必须static外部才能用类名调用这个方法!
    public static Singleton getInstance(){
        return instance;
    }
    
}
/**
 * 懒汉模式
 * 区别:
 * 饿汉模式加载类比较慢,但运行时获取对象的速度比较快,而且线程安全;
 * 懒汉模式则相反,而且线程不安全
 */
public class Singleton2 {
    //1、将构造方法私有化,不允许外部直接创建实例化,否则可以new无数个对象
    private Singleton2(){
        
    }
    //2、只声明类的唯一实例,由于第3步必须static,所以instance实例也必须是static
    private static Singleton2 instance;
    
    //3、提供一个用于获取实例的方法,必须static外部才能用类名调用这个方法!
    public static Singleton2 getInstance(){
        //判断是否为空
        if(instance==null){
            instance=new Singleton2();
            return instance;
        }
        return null;
    }
}

 

Java单例模式