使用静态代码块来实现单例模式

Posted 我想回家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用静态代码块来实现单例模式相关的知识,希望对你有一定的参考价值。

package com.wz.thread.staticlump;
/**
 * 使用静态代码块来实现单例模式
 * @author Administrator
 *
 */
public class MyObject {
    
    private static MyObject instance = null;
    
    private MyObject() {}
    static {
        instance = new MyObject();
    }
    public static MyObject getInstance() {
        return instance;
    }

}

 

package com.wz.thread.staticlump;

public class MyThread extends Thread {
    
    @Override
    public void run() {
        super.run();
        for (int i = 0; i < 5; i++) {
            System.out.println(MyObject.getInstance().hashCode());
        }
        
    }

}

 

package com.wz.thread.staticlump;
/**
 * 输出的hascode值相同,说明是同一个对象
 * @author Administrator
 *
 */
public class Run {

    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        MyThread t2 = new MyThread();
        MyThread t3 = new MyThread();
        t1.start();
        t2.start();
        t3.start();
    }
}

以上是关于使用静态代码块来实现单例模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式---单例模式

设计模式单例模式:4-静态代码块模式

单例模式以及静态代码块

2. 单例模式

两种实现单例模式的方式

单例设计模式之饿汉式(静态代码块)