单例模式

单例模式

单例设计模式,就是采用一定方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法

饿汉式方法实现单例模式

class Bank{
    //私有化构造方法
    private Bank(){

    }
    //直接声明对象
    private static Bank bank = new Bank();
    //通过静态方法返回该对象
    public static Bank getBank() {
        return bank;
    }
}

懒汉式方法实现单例模式

class Bank{
    //私有化构造方法
    private Bank(){

    }
    //声明对象为空
    private static Bank bank = null;
    //在调用get方法是实例化对象,再通过静态方法返回该对象
    public static Bank getBank() {
        //如果bank为空,则实例化bank
        if (bank == null){
            bank = new Bank();
        }
        return bank;
    }
}

对比两种方式的区别

饿汉式立即加载(随着类的加载而加载),懒汉式延迟加载(在需要使用时创建)

饿汉式写法简单,由于内存中较早加载,使用更方便更快。但在内存中占用时间长。线程安全

懒汉式在需要的时候创建,节省内存空间,线程不安全