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后端技术全栈