1、单例模式
什么是单例模式?
单例的意思是一个类永远只存在一个对象,不能创建多个对象。
为什么要用单例?
开发中有很多类的对象我们只需要一个,例如虚拟机对象!任务管理器对象!
对象越多越占内存,有些时候只需要一个对象就可以实现业务,单例可以节约内存,提高性能。
如何实现单例:(单例的实现目前有2中方式)
1、饿汉式单例设计模式:
通过类获取单例对象的时候,对象已经提前做好了。
实现步骤:
1、定义一个单例类;
2、把类的构造器私有;
3、定义一个静态成员变量用于存储一个对象(饿汉单例在返回对象的时候,对象已经做好,所以这里直接创建出来!)
4、定义一个方法返回单例对象。(这一步可以省略,则类名.成员变量)
public class SingleInstanceDemo01 {
public static void main(String[] args) {
SingleInstance i1 = SingleInstance.getInstance();
SingleInstance i2 = SingleInstance.getInstance();
System.out.println(i1==i2); //返回为true,即只有一个单例
}
}
//1、定义一个单例类(饿汉式单例设计一个单例模式的类)
class SingleInstance{
//2、构造器私有
private SingleInstance(){
}
//3、定义一个静态成员变量用于存储一个对象!(饿汉单例在返回对象的时候,对象要已经做好)
public static SingleInstance ins=new SingleInstance();
//4、定义一个方法返回单例对象
public static SingleInstance getInstance(){
return ins;
}
}
2、懒汉单例设计模式:
通过类获取单例对象的时候发现没有对象才会去创建一个对象。
实现步骤:
1、定义一个单例类
2、把类的构造器私有;
3、定义一个静态成员变量用于存储一个对象
4、定义一个方法返回单例对象。
public class SingleInstanceDemo01 {
public static void main(String[] args) {
SingleInstance i1 = SingleInstance.getInstance();
SingleInstance i2 = SingleInstance.getInstance();
System.out.println(i1==i2); //返回为true,即只有一个单例
}
}
//1、定义一个单例类(懒汉式单例设计一个单例模式的类)
class SingleInstance{
//2、构造器私有
private SingleInstance(){
}
//3、定义一个静态成员变量用于存储一个对象!
public static SingleInstance ins;
//4、定义一个方法返回单例对象
public static SingleInstance getInstance(){
if (ins==null){
ins=new SingleInstance();
}
return ins;
}
}