写的很不错的单利模式,还考虑了线程安全的问题的博客:******
https://blog.****.net/jo__yang/article/details/52117031

饿汉式:

非线程安全式的懒汉式:

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

5.内部类式

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

线程安全的
如何实现单例模式:
1.把这个类的构造方法变成private(这样就不能new这个类);
2.静态地构造类的对象(可以让它立刻引用,这就是饿汉模式;也可以后面引用,就是懒汉模式)
3.构造一个静态方法返回第二步的对象(如果是懒汉模式,就在这一步把第二步未完成的实例化对象给完成);

如果是懒汉模式:
在public static GiantDragon getInstance(){
if(instance==null){//先判断实例是否为空
instance=new GiantDragon(); //为空就实例化,而不是像饿汉模式无论是否为空都进行实例化;
}
return instance;
}