定义
一个类只能有一个对象,确保类的对象唯一性
起源
对于默写特定的文件或者程序等等确保所有的操作只对一个对象进行操作,比如说电脑的日志文件,只会对同一个日志文件进行操作。
格式
1.构造函数私有化
2.提供一个静态接口暴露对象
3.对象设置为静态对象
public class InstanceTest {
//成员变量
int age;
int height;
private InstanceTest(){//私有化构造函数
}
static InstanceTest T=new InstanceTest();
static InstanceTest getInstance()//暴露接口
{
return T;
}
}
额外知识点
上文写的单例模式其实饿汉式,也就是说,类一旦加载了立马创建一个合适的对象
对于面试而言,往往需要考的是懒汉式,不说废话,直接看代码:
public class InstanceTest {
private InstanceTest() {}
static InstanceTest T=null;
static InstanceTest getInstance(){
if(T==null)
{
synchronized(InstanceTest.class) {
if(T==null)
T=new InstanceTest();
}
}
return T;
}
}
这里就是在调用时才会创建对象,但是可以很明显的看到我这里加了锁,目的就是以防多个地方同时调用,确保防止出现创建多个对象的情况