同步或使用ConcurrentHashMap的重要性不可低估。
直到几年前,我还处于一种误导的印象中,我只能通过同步HashMap上的放置和删除操作就可以摆脱困境。这当然是非常危险的,实际上会在某些(我认为是1.5)jdk的HashMap.get()中导致无限循环。
我几年前做过的事情(实际上不应该做):
public MyCache { private Map<String,Object> map = new HashMap<String,Object>(); public synchronzied put(String key, Object value){ map.put(key,value); } public Object get(String key){ // can cause in an infinite loop in some JDKs!! return map.get(key); }}编辑:以为我会添加一个示例,该怎么办(见上文)



