有没有更好的方法来缓存一些非常大的对象,这些对象只能创建一次,因此需要缓存?目前,我有以下内容:
public enum LargeObjectCache {
INSTANCE;
private Map<String, LargeObject> map = new HashMap<...>();
public LargeObject get(String s) {
if (!map.containsKey(s)) {
map.put(s, new LargeObject(s));
}
return map.get(s);
}
}
有几个类可以使用 LargeObjects,这就是为什么我决定使用单例缓存,而不是将 LargeObjects 传递给每个使用它的类。
此外,该映射不包含很多键(一个或两个,但键在程序的不同运行中可能会有所不同),那么在这种情况下是否还有另一个更有效的映射?