我有两个Java类。第一个名为“索引”,第二个临时命名为"IndexCache":
public class IndexCache {
private static Map<String, Index> map = null;
static {
map = new HashMap<String, Index>();
}
@Override
public Index getIndexString(key) {
Index index = map.get(key);
if (index == null) {
index = new Index("yadayadayada");
map.put(key, index);
}
return index;
}
}如您所见,IndexCache保留索引对象的映射,以避免一次又一次地创建相同的对象。
这是什么编程技术?它的名字是什么?
发布于 2015-03-03 11:30:46
这叫做缓存,这种技术叫做缓存。
缓存是存储数据以加快对同一数据的进一步请求的东西。该数据可能是一些昂贵计算的结果,因此被缓存以避免重复该昂贵的计算。它也可能是某些数据的副本,这些数据在其他地方已经预先计算过,但检索起来却很昂贵(例如,从RAM中的一个缓慢硬盘缓存文件系统块,或者从本地代理缓存上的远程服务器缓存HTTP文档)。
每次都会动态地使用不同的值填充缓存,并且可能会增长和缩小。
这与查找表不同,查找表是静态填充的,总是使用相同的值,有时甚至硬编码到源代码中,或者在编译时预先计算。
记忆是一种特例,它专门指用相同的参数缓存函数应用程序的结果。
https://softwareengineering.stackexchange.com/questions/275050
复制相似问题