面试会问到单例模式,这个算是最简单的设计模式,有的时候只靠死记硬背是不行的,要理解单例模式。
单例模式就是保证在Java程序中,一个类class只有一个实例存在。
(很多人对实例这个词有点迷糊,其实我们new对象的时候,这个对象就是实例,二者算是等价的。
XXX xxx = new XXX();
其中我们new XXX()是创建一个对象,这个对象是XXX()的实例,
xxx是引用,接收这个对象在内存的地址,帮忙提供找到对象在内存的位置
)
写一个单例模式的简单例子(其实有两种)
class singleton(){
//1
private singleton(){}
//2
private static singleton instance = new singleton();
//3
public static singleton getInstance(){
return instace;
}
}
讲一下大概思路
1,创建一个private的构造器
2,我们要生成一个实例,这个实例要private和static的,保证不会被访问,只生成一次。
3.,提供一个public方法返回实例,让外部可以访问这个实例,整个过程这个实例只被访问一次。