只创建一个实例 自己创建自己的实例,全系统共享这个实例
一 .懒汉式 等用到的时候才创建实例 特点 延迟加载,我们需要考虑它的线程安全问题,因此可以加锁,双重验证锁既保证了性能有保证了线程安全;静态内部类的方法则是在使用的时候才进行加载。
二. 恶汉式 在第一次加载时就先创建好实例
特点是 线程安全的,用于占用内存较小的时候,刚开始就需要这个实例的时候。
public class singlePattern {
// 懒汉式
private singlePattern(){}
private static singlePattern si=null;
// 双重锁
public static final singlePattern getInstance(){
if(si==null){
synchronized (singlePattern.class) {
if(si==null){
si=new singlePattern();
}
}
}
return si;
}
// 静态内部类
private static class getSTA{
static singlePattern INSTANCE=new singlePattern();
}
public static final singlePattern getInstance2(){
return getSTA.INSTANCE;
}
/*
* 饿汉式
*
*/
private static final singlePattern si2= new singlePattern();
public static final singlePattern getInstance3(){
return si2;
}
}