单例模式,应该是设计模式中最好理解的一种了,自己曾经也看了无数遍,但是每次用的时候,总是需要查阅资料,所以好记性不如烂笔头,还是记下来为好,那样下次在使用的时候就方便多了。总的来说,单例模式可以分为饿汉模式和懒汉模式。
1.饿汉模式
public class Singleton{
private static Singleton instance = new Singleton ();
public static Singleton getInstance(){
return instance;
}
}
2.懒汉模式
public class Singleton {
private static Singleton instance = null;
public static Singleton getInstance(){
if (instance==null){
synchronized(Singleton.class){
instance = new Singleton();
}
}
return instance;
}
}
关于两者的区别,懒汉模式是在使用实例的时候去创建,所以说效率上更高一些。
另外还有一点,第二种懒汉模式synchronized同步代码块,对象锁是Class对象,关于这个对象,
在内存汇总有且只有一个而且是在类被编译时创建的。
有解释不正确的地方,希望大家及时指出,多谢多谢!