Java中的单例模式函数实现方法
单例模式是一种常见的设计模式,在Java中也有多种实现方法。下面将介绍几种Java中的单例模式函数实现方法。
1. 懒汉式单例模式
懒汉式单例模式是实现起来比较简单的一种单例模式方法,其特点是在 次调用时才会创建对象,这样可以提高程序的性能。以下是一个例子:
public class Singleton {
private static Singleton instance; // 声明私有静态变量
private Singleton() {} // 构造函数私有化
public static Singleton getInstance() { // 声明公有静态方法
if (instance == null) { // 次调用时才创建对象
instance = new Singleton();
}
return instance;
}
}
2. 饿汉式单例模式
饿汉式单例模式就是在类加载时就创建对象,非常简单,但是有可能浪费系统资源。以下是一个例子:
public class Singleton {
private static final Singleton instance = new Singleton(); // 声明静态常量,并创建对象
private Singleton() {} // 构造函数私有化
public static Singleton getInstance() { // 声明公有静态方法
return instance;
}
}
3. 双重校验锁单例模式
双重校验锁单例模式是懒汉式单例模式的升级版,因为它可以解决懒汉式模式的线程不安全问题,同时还能保持懒汉式模式的优点。以下是一个例子:
public class Singleton {
private static volatile Singleton instance; // 声明私有静态变量(使用volatile关键字保证线程安全)
private Singleton() {} // 构造函数私有化
public static Singleton getInstance() { // 声明公有静态方法
if (instance == null) { // 次调用时才创建对象
synchronized(Singleton.class) { // 对对象加锁
if (instance == null) { // 双重校验锁
instance = new Singleton();
}
}
}
return instance;
}
}
4. 静态内部类单例模式
静态内部类单例模式是一种常见的单例模式方法,其特点是在 次调用时才会创建对象,并且保证线程安全。以下是一个例子:
public class Singleton {
private Singleton() {} // 构造函数私有化
private static class SingletonHolder { // 静态内部类
private static final Singleton INSTANCE = new Singleton(); // 声明静态常量,并创建对象
}
public static Singleton getInstance() { // 声明公有静态方法
return SingletonHolder.INSTANCE;
}
}
以上是常见的几种Java中的单例模式函数实现方法。不同的方法各有特点,可以根据实际需要选择适合的方法。
