面试题答案
一键面试单例类设计要点
- 私有构造函数:防止外部通过构造函数创建新实例,确保只能有一个实例存在。
- 静态成员变量:用于存储单例实例,保证在类加载时就初始化或者延迟初始化。
- 静态方法:提供全局访问点来获取单例实例。
结合HashMap
实现存储全局唯一配置信息
以下是示例代码:
import java.util.HashMap;
import java.util.Map;
public class ConfigSingleton {
// 私有静态成员变量存储单例实例
private static ConfigSingleton instance;
// 使用HashMap存储配置信息
private Map<String, String> configMap;
// 私有构造函数
private ConfigSingleton() {
configMap = new HashMap<>();
}
// 静态方法获取单例实例
public static ConfigSingleton getInstance() {
if (instance == null) {
synchronized (ConfigSingleton.class) {
if (instance == null) {
instance = new ConfigSingleton();
}
}
}
return instance;
}
// 向配置集合中添加配置信息
public void addConfig(String key, String value) {
configMap.put(key, value);
}
// 从配置集合中获取配置信息
public String getConfig(String key) {
return configMap.get(key);
}
}
在上述代码中:
ConfigSingleton
类通过私有构造函数确保不能在外部创建新实例。instance
是ConfigSingleton
类的唯一实例。getInstance
方法采用双重检查锁机制来确保线程安全地创建单例实例。configMap
用于存储全局唯一的配置信息,通过addConfig
和getConfig
方法来操作配置集合。