单例模式简介:在任何情况下 系统仅仅有一个实例。创建单例模式的方式有五种,说是这么说,但是,实际中很少使用。可能是我很少使用吧。
1.懒汉模式
//懒汉模式
public class TastCase {
//无论哪种方式创建,构造方法都是private
private TastCase() {}
private static TastCase instance;
public static TastCase getInstance() {
if(instance==null) {
instance = new TastCase();
}
return instance;
}
public static void main(String[] args) {
TastCase t1 = TastCase.getInstance();
TastCase t2 = TastCase.getInstance();
System.out.println(t1==t2);
}
}
2.饿汉模式
//饿汉模式
public class TastCase {
//无论哪种方式创建,构造方法都是private
private TastCase() {}
private static TastCase instance = new TastCase();
public static TastCase getInstance() {
return instance;
}
public static void main(String[] args) {
TastCase t1 = TastCase.getInstance();
TastCase t2 = TastCase.getInstance();
System.out.println(t1==t2);
}
}
3.double check 模式
//double check 模式
public class TastCase {
//无论哪种方式创建,构造方法都是private
private TastCase() {}
private volatile static TastCase instance ;
public static TastCase getInstance() {
if(instance==null) {
synchronized(TastCase.class) {
if(instance==null) {
instance = new TastCase();
}
}
}
return instance;
}
public static void main(String[] args) {
}
}