Java单例模式复习(二)
心血来潮,在学学单例模式,以下是代码块,延迟加载的单例的执行,实现代码如下:
package singleton;
/**
* 延迟加载的单例的执行
* @author Administrator
*
*/
public class SingletonLazy {
private SingletonLazy(){
}
private static SingletonLazy instance=null;
public static synchronized SingletonLazy getInstance(){
if(instance==null){
instance=new SingletonLazy();
}
return instance;
}
}
/**
* 这里必须注意,getInstance方法必须是同步的,否则在多线程环境下,当线程A正创建单例时候,完成赋值操作前,线程B可能判断instance为Null,
* 所以这时候线程B也创建单例,从而导致多个实例产生,所以这里必须加上关键字synchronized,
*/
欢迎关注公众号:Java后端技术全栈