懒汉模式就是不需要的时候实例就一直为null,等你需要的时候我在创建实例。
跟饿汗模式差不多,构造器私有化,提供获得实例的静态方法,唯一的区别在于提供实例的时候会进行判断实例是否为null
懒汉式:
public class SimpleLazy {
private static SimpleLazy instance;
private SimpleLazy(){
}
public static SimpleLazy getInstance(){
if(instance == null){
instance = new SimpleLazy();
}
return instance;
}
}
测试类:
public class Test {
public static void main(String[] args) {
System.out.println(SimpleLazy.getInstance());
}
}
测试结果:
E:\Java\jdk\bin\java.exe "-javaagent:E:\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar=63326:E:\IntelliJ IDEA 2018.2.4\bin" -Dfile.encoding=UTF-8 -classpath E:\Java\jdk\jre\lib\charsets.jar;E:\Java\jdk\jre\lib\deploy.jar;E:\Java\jdk\jre\lib\ext\access-bridge-64.jar;E:\Java\jdk\jre\lib\ext\cldrdata.jar;E:\Java\jdk\jre\lib\ext\dnsns.jar;E:\Java\jdk\jre\lib\ext\jaccess.jar;E:\Java\jdk\jre\lib\ext\jfxrt.jar;E:\Java\jdk\jre\lib\ext\localedata.jar;E:\Java\jdk\jre\lib\ext\nashorn.jar;E:\Java\jdk\jre\lib\ext\sunec.jar;E:\Java\jdk\jre\lib\ext\sunjce_provider.jar;E:\Java\jdk\jre\lib\ext\sunmscapi.jar;E:\Java\jdk\jre\lib\ext\sunpkcs11.jar;E:\Java\jdk\jre\lib\ext\zipfs.jar;E:\Java\jdk\jre\lib\javaws.jar;E:\Java\jdk\jre\lib\jce.jar;E:\Java\jdk\jre\lib\jfr.jar;E:\Java\jdk\jre\lib\jfxswt.jar;E:\Java\jdk\jre\lib\jsse.jar;E:\Java\jdk\jre\lib\management-agent.jar;E:\Java\jdk\jre\lib\plugin.jar;E:\Java\jdk\jre\lib\resources.jar;E:\Java\jdk\jre\lib\rt.jar;F:\IdeaProjects\simple\out\production\simple lazy.Test
lazy.SimpleLazy@1b6d3586