单例模式的分为两种类型:饿汉模式和懒汉模式。
单例模式主要应用在:配置文件,工具类,线程池,缓存等。
饿汉模式:类加载时就创建对象并实例化,线程安全的。
/**
* 单例模式:饿汉模式 线程安全的
* <p>
* 作用:保证整个程序中某个实例有且只有一个
*
*/
public class Singleton {
//1.将构造方法私有化
private Singleton() {
}
//2.创建类的唯一实例
private static Singleton instance = new Singleton();
//3.通过方法让调用者获取实例
public static Singleton getInstance() {
return instance;
}
}
懒汉模式:在运行时对对象实例化,线程不安全。
/*
懒汉模式
*/
public class Singleton2 {
//1.将构造方法私有化
private Singleton2() {
}
//2.只声明对象
private static Singleton2 instance ;
//3.首次调用时,就实例化对象
public static Singleton2 getInstance() {
if (null == instance) {
instance = new Singleton2();
}
return instance;
}
}