lz你好,这是我总结的毕老师关于单例的讲解,希望对你有帮助。
****************************************************
1,单例模式存在的原因:为保证对象的唯一性,使一个类在内存中只存在一个对象。
2,单例模式的两种写法:
饿汉式:
class Single
{
private Single(){};
private Single s = new Single();
public static getSingle(){
return s ;
}
}
*****************
懒汉式:
class Single
{
private Single(){};
private Single s = null;
public static getSingle(){
if(s==null)
s= new Single();
return s ;
}
}
3,两种模式的区别:简单说:开发用饿汉式,面试出懒汉式。
饿汉式在jvm运行的时候已经创建好对象,不必考虑安全问题;
懒汉式在第一次访问实例时才开始创建对象,需要同步。
ps:csdn博客上的话,我总结不了这么好啊,不过记住了。
********************************
4,懒汉式同步的方法:
class Single
{
private Single(){};
private Single s = null;
public static getSingle(){
if(s==null)
synchronized(Single.class){
if(s==null)
s= new Single();
}
return s ;
}
}
|