设计模式
设计模式:对问题解决方式的一种思想。
保证一个类在内存中的对象唯一性。
多个程序使用同一个配置信息对象,就要保证对象的唯一性。
如何保证对象唯一性?
1.不允许其他程序用 new创建该类对象。
2.在该类创建一个本类对象。
3.对外提供一个方法获取该对象。
饿汉式
类一加载对象已经存在。
/**
- Created by zengjx on 2019/4/23.
*/
//饿汉式
class Single{
private static Single single=new Single();;
private Single(){
}
public static Single getInstance(){
return single;
}
}
public class SingleDemo {
public static void main(String[] args){
Single single =Single.getInstance();
Single single2= Single.getInstance();
if(single==single2){
System.out.println(" 欧了 ");
}
}
}
栈 :main s1,s2
getInstance 进栈 返回 结果0x0045 给s1 然后 getInstance 出栈
getInstance 进栈 返回 结果0x0045 给s2 然后 getInstance 出栈
s1 ,s2 指向 堆对象。
Single 加载进内存
方法区 : Single s=null 堆: 对象 地址0x0045
getInstance()
懒汉式 面试知识较多
单例延迟加载, 只有调用方法时才创建对象。
后期被多线程并发访问时存在安全隐患。线程不安全。
//懒汉式
class Single2{
private static Single2 single2=null;
private Single2(){
}
public static Single2 getInstance(){
if(single2==null){
single2 =new Single2();
}
return single2;
}
}