说起单例模式,顾名思义也就是一个实例。不管是在单线程还是多线程下,要保证全局模式下,只有一个实例。至于为什么嘞,据我了解:1:节省内存;2:保证一些数据初始化不会出错。
查看了网上很多资料以及书籍,发现单例模式比较靠谱的写法有:
双重判断:
public class Singleton02
{
private static Singleton02 instance;
public static Singleton02 getInstance()
{
if (instance == null)
{
synchronized (Singleton02.class)
{
if (instance == null)
{
instance = new Singleton02();
}
}
}
return instance;
}
}
至于为什么这种写法比较靠谱一些呢?
请参考一下博客:
Java中的模式 –单态 (部分翻译 double-checked locking break)
http://blog.csdn.net/guolin_blog/article/details/8860649
http://blog.csdn.net/lmj623565791/article/details/24468641
使用Java的枚举,还是很推荐的,也比较简单:
public enum Singleton03
{
INSTANCE;
}
总结:感觉用枚举实现单例,应该是最完善的个方法吧。