1.11 单例模式 - 饿汉式
类加载时创建。
public class SingleTon01 {
public static void main(String[] args) {
GirlFriend xh = GirlFriend.getInstance();
GirlFriend xb = GirlFriend.getInstance();
System.out.println(xh);
System.out.println(xb);
System.out.println(xh == xb);//true
}
}
class GirlFriend {
private String name;
private static GirlFriend gf = new GirlFriend("小红");
private GirlFriend(String name) {
this.name = name;
}
public static GirlFriend getInstance() {
return gf;
}
}
为了解决单例模式饿汉式创建构造方法没有使用,出现了懒汉式。
懒汉式
使用时创建。
public class SingleTon02 {
public static void main(String[] args) {
// System.out.println(Cat.n1 );
Cat instance=Cat.getInstance();
System.out.println(instance);
Cat instance2=Cat.getInstance();
System.out.println(instance2);
}
}
class Cat {
private String name;
public static int n1 = 999;
private static Cat cat;
private Cat(String name) {
System.out.println("构造器调用");
this.name = name;
}
public static Cat getInstance() {
if (cat == null) {
cat = new Cat("小可爱");
}
return cat;
}
}