创建方法:
1.构造方法私有化;
2.声明一个本类对象;
2.给外部提供一个静态方法获取对象实例。
基本单例模式分类:
懒汉式:在第一次调用getInstance方法时,对象被创建,直到程序结束后释放。
饿汉式:在类被加载后,对象被创建,直到程序结束后释放。
两者比较:
饿汉式:占用内存时间长,提高效率。
懒汉式:占用内存时间短,效率低下。
在项目中为什么要使用单例模式,有什么作用?
1.在设计一些工具类的时候(通常工具类只有功能方法,没有属性)。
2.工具类可能会被频繁调用。
创建饿汉式代码:
public class Singleton01 {
//构造方法私有化
private Singleton01(){}
//声明一个实例化的本类对象
private static Singleton01 s1 = new Singleton01();
//给外部提供一个静态方法获取对象实例
public static Singleton01 getInstance(){
return s1;
}
public void print(){
System.out.println("测试方法");
}
}
创建懒汉式代码:
public class Singleton02 {
//构造方法私有化
private Singleton02(){}
//声明一个未实例化的本类对象
private static Singleton02 s2;
//给外部提供一个静态方法获取对象实例
private static Singleton02 getInstance(){
if (s2 == null){
s2 = new Singleton02();
}
return s2;
}
public void print(){
System.out.println("测试方法");
}
}