单例模式是23种设计模式中最简单的一种设计模式
作用:保证JVM中某个类型的java对象永远只有一个
目的:节省内存开销
实现:
- 构造方法私有化
- 对外提供一个公开的静态的获取当前类型对象的方法
- 提供一个当前类型的静态变量
分类:
- 饿汉式单例:在类加载阶段就创建了对象
public class Singleton
{
//类加载时只执行一次
private static Singleton s=new Singleton();
//构造方法私有化
private Singleton(){}
//对外提供一个公开获取Singleton对象的方法
public static Singleton getInstance()
{
return s;
}
}
- 懒汉式单例:用到对象的时候才会创建
public class Singleton
{
//懒汉式单例
//静态变量
private static Singleton s;
//构造方法私有化
private Singleton(){}
//对外提供一个公开获取Singleton对象的方法
public static Singleton getInstance()
{
if(s==null){
s=new Singleton();
}
return s;
}
}