一段代码帮你简单理解java单例模式中的饿汉模式和懒汉模式的区别与使用
懒汉式是用才创建,饿汉式是初始化的时候就把实例对象创建给你了
稍微了解一下就知道懒汉模式和饿汉模式创建的对象是用函数返回,对象本身是当前类帮你创建的,所以类中的对象是不可以直接访问的,所以你只需要将权限修改,将private换成oublic,那么你就可以通过类直接访问对象了,执行结果就是
null
com.anakin.jichu.Singleton_ehan@63947c6b
com.anakin.jichu.Singleton_lanhan@2b193f2d
明显懒汉式是初始化的时候,没有给你创建,只有使用了函数才会帮你创建,但是饿汉式初始化创建。
下面是代码
public class SingletonTest {
public static void main(String[] args) {
System.out.println(Singleton_lanhan.singleton_lanhan);
System.out.println(Singleton_ehan.singleton_ehan);
System.out.println(Singleton_lanhan.getInstance());
}
}
class Singleton_ehan{
private Singleton_ehan() {
}
public static Singleton_ehan singleton_ehan = new Singleton_ehan();
public static Singleton_ehan getInstance(){
return singleton_ehan;
}
}
class Singleton_lanhan{
private Singleton_lanhan(){
}
// private static Singleton_lanhan singleton_lanhan;
public static Singleton_lanhan singleton_lanhan;
// 懒汉要用的时候创建
public static Singleton_lanhan getInstance(){
if (singleton_lanhan == null){
singleton_lanhan = new Singleton_lanhan();
}
return singleton_lanhan;
}
}