文章目录
前言
单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。
一、标准饿汉式单例
在类加载的时候就创建单例对象,后续就只需要调用即可。
优点:
1.线程安全:无论如何多线程访问,保证唯一实例
2.调用、反应速度快:因为类加载时就已经创建,可以不加判断地直接调用。
缺点:
1.资源利用率低:有可能创建之后一直没有被调用,导致资源浪费。
2.加载速度慢:因为类加载时就创建单例对象,会影响加载速度。
0.原初饿汉式
class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return instance;
}
}
1.静态代码块
适合复杂的实例化,例如实例化类时加载一些外部的文件等
class Singleton {
private static final Singleton instance;
private Singleton() {
}
static {
instance = new Singleton();
}
public static Singleton getInstance() {
return instance;