java 单例模式

来源:互联网 发布:最新好听网络歌曲 编辑:程序博客网 时间:2024/06/03 11:37

首先看下单例模式的几种实现方式

个人理解:里面说的线程安全,是static对象不会多次被初始化。比如饿汗的写法,是在加载类的时候已经初始化static对象了,而不是在getInstance()里面初始化,后面基本是改变不了的,所有是线程安全的!

package test;//饿汉式单例类.在类初始化时,已经自行实例化 public class Singleton {  private Singleton() {}  private static final Singleton single = new Singleton();  //静态工厂方法   public static Singleton getInstance() {      return single;  }}

public static void main(String[] args) {
//饿汉实现方式,结果输出是同个实例,注意上面标红的单词,它代表你不能用new 类()去初始化,或者创建一个实例//Singleton s1=Singleton.getInstance();//Singleton s2=Singleton.getInstance();
//下面这种方法必须把private去掉!!!输出结果是两个不同实例
//Singleton s1=new Singleton();//Singleton s2=new Singleton();//System.out.println(s1+" "+s2);}