Java中的饿汉,懒汉单例模式

写的很不错的单利模式,还考虑了线程安全的问题的博客:******

https://blog.****.net/jo__yang/article/details/52117031

 

Java中的饿汉,懒汉单例模式

饿汉式:

Java中的饿汉,懒汉单例模式

非线程安全式的懒汉式:

Java中的饿汉,懒汉单例模式

 

 

 4.高效的线程安全的懒汉式(而且保证了线程有序性)

Java中的饿汉,懒汉单例模式

5.内部类式

Java中的饿汉,懒汉单例模式

 枚举类(里面每个静态对象在类创建之后只用一次,所以是安全的?)

Java中的饿汉,懒汉单例模式

 

 线程安全的

如何实现单例模式:

1.把这个类的构造方法变成private(这样就不能new这个类);

2.静态地构造类的对象(可以让它立刻引用,这就是饿汉模式;也可以后面引用,就是懒汉模式)

3.构造一个静态方法返回第二步的对象(如果是懒汉模式,就在这一步把第二步未完成的实例化对象给完成);

 

Java中的饿汉,懒汉单例模式

 

 

如果是懒汉模式:

在public static GiantDragon getInstance(){

if(instance==null){//先判断实例是否为空

instance=new GiantDragon();   //为空就实例化,而不是像饿汉模式无论是否为空都进行实例化;

return instance; 

}

 

http://how2j.cn/k/class-object/class-object-singleton/349.html#nowhere