使用static代码块实现单例模式

假如想象 提交于 2020-02-27 06:48:05

静态代码块中的代码在使用类的时候就已经执行了,所以可以应用静态代码块的这个特性来实现单例设计模式。

public class MyObject {
    private static MyObject instance = null;
    public MyObject() {
    }
    static {
        instance = new MyObject();
    }
    public static MyObject getInstance(){
        return instance;
    }
}
public class MyThread extends Thread{
    @Override
    public void run() {
        System.out.println(MyObject.getInstance().hashCode());
    }
}
public class Run {

    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        MyThread myThread1 = new MyThread();
        MyThread myThread2 = new MyThread();

        myThread.start();
        myThread1.start();
        myThread2.start();
    }
}

下一节:使用enum枚举实现单例模式

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!