Java - Singleton(单例)

2022-06-11  本文已影响0人  aven_kang
public class singleton {

    //2.声明本类类型的引用指向本类类型的对象
    private static singleton sin = new singleton();

    // 1.私有化构造方法,使用private关键字修饰
    private singleton() {


    }

    public static singleton getInstance() {

        return sin;

    }
    
    public static void main(String[] args) {

        singleton single = new singleton();
        singleton single2 = new singleton();




    }
}

如何使用这个单例

public class test {

    {
        System.out.print("构造块");
    }

    static {
        System.out.print("静态代码块");
    }

    test() {
        System.out.print("构造函数");
    }

    public static void main(String[] args) {
        
        singleton s1 = singleton.getInstance();
        singleton s2 = singleton.getInstance();

        if (s1 == s2) {
            System.out.print("yes"); // 最后代码走进了这里,说明两个类是同一个对象
        }

    }
    
}

饿汉模式

public class singleton {

    //2.声明本类类型的引用指向本类类型的对象
    private static singleton sin = new singleton();

    // 1.私有化构造方法,使用private关键字修饰
    private singleton() {


    }

    public static singleton getInstance() {

        return sin;

    }
    
    public static void main(String[] args) {

        singleton single = new singleton();
        singleton single2 = new singleton();




    }
}

饿汉模式:意思就是上来就创建对象

private static singleton sin = new singleton();

而懒汉模式呢,是需要的时候,再创建对象,代码如下

public class singleton {

    //2.声明本类类型的引用指向本类类型的对象
    // private static singleton sin = new singleton();
    private static singleton sin = null;

    // 1.私有化构造方法,使用private关键字修饰
    private singleton() {


    }

    public static singleton getInstance() {

        if (sin == null) {
            sin = new singleton();
        }
        return sin;

    }
    
    public static void main(String[] args) {

        singleton single = new singleton();
        singleton single2 = new singleton();

    }
}

这个就是懒汉模式,private static singleton sin = null; sin这个对象一开始并不会初始化,而是在调用方法的时候,才会创建第一个也唯一的一个对象,
在一般开发中,我们比较推荐使用饿汉模式,考虑到多线程访问的问题。

上一篇下一篇

猜你喜欢

热点阅读