1.单例模式
单例模式确保某个类只有一个实例,主要使用有两种:懒汉式单例、饿汉式单例
单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。
使用场景:
数据库连接池:单例模式可以确保在某个时刻只有一个数据库连接池实例存在,避免出现重复连接的问题。
线程池:Java 线程池是一个非常重要的 API,创建多个线程池实例可能导致内存使用过高,以将其设置为单例模式更加合适。
1.1懒汉式单例
代码示例:
//懒汉式单例类.在第一次调用的时候实例化自己
public
class
Singleton {
private
Singleton() {}
private
static
Singleton single=
null
;
//静态工厂方法
public
static
Singleton getInstance() {
if
(single ==
null
) {
single =
new
Singleton();
}
return
single;
}
}
public
class
Singleton {
private
static
class
LazyHolder {
private
static
final
Singleton INSTANCE =
new
Singleton();
}
private
Singleton (){}
public
static
final
Singleton getInstance() {
return
LazyHolder.INSTANCE;
}
}
1.2饿汉式单例
代码示例:
//饿汉式单例类.在类初始化时,已经自行实例化
public
class
Singleton1 {
private
Singleton1() {}
private
static
final
Singleton1 single =
new
Singleton1();
//静态工厂方法
<