懒汉式单例设计模式:
单例设计模式,对象只创建一次
饿汉式:获取对象需要被使用时才创建对象
实现思想:
1:构造方法私有化
2:获取对象才创建对象和
优点:按需创造
缺点:代码复杂
public class Lanhan{
//类加载后属性赋值为默认值Null
private static Lanhan lanhan;
//构造方法私有化,只有在本类中能使用
private Lanhan(){
System.put.println("方法执行了");
}
public static Lanhan getInstance(){
//存在 Lanhan 对象直接返回
if(lanhan == null){
//类锁,多线程操作时容易出现线程安全问题
Synchronized(Lanhan.class){
//多线程抢夺资源时,只有一个线程获取到锁资源,其他线程等待
//该线程执行完成后,完成对象的创建,释放锁资源,其他线程抢夺到锁资源,
//其他线程继续执行,不添加判断,重新创建了对象
if(lanhan == null){
lanhan = new Lanhan();
}
}
}
return lanhan;
}
}
饿韩式单例设计模式:
单例设计模式:对象只创建一次
饿汉式:类加载就创建
实现思想:
1:提供了私有化的构造方法,(构造方法之呢个在本类中使用)
2:提供私有的静态属性,该属性在类加载后完成创建
3:提供公开方法返回属性
优点:代码简单
缺点:无论是否使用,只要类加载就会创建
public class Ehan{
//仅在类加载后创建一次
private static Ehan ehan = new Ehan();
//超过本类范围需允许被调用
private Ehan(){}
//返回类加载后创建的对象
public static Ehan getInstance(){
return ehan;
}
}
目前只会这两个