饿汉式代码:
class Single
{
private static Single s = new Single();
private Single(){}
public static Single getInstance()
{
return s;
}
}
懒汉式代码: 单例延迟加载的示例
class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
s = new Single();
return s;
}
}
饿汉式一开始就创建对象,懒汉式是在需要的时候创建对象,二者主要区别就是延迟加载。
懒汉式有两个缺点
- 不能够同步
- 当多个线程并发访问getInstance函数时,容易引发线程安全问题。
后注:
在使用时,一般使用的是饿汉式。
面试的时候,一般使用的是懒汉式