我有这个ConcurrentMap

 ConcurrentMap<String, Byte[]> companyLogo = new MapMaker()
                   .concurrencyLevel(Runtime.getRuntime().availableProcessors())
                   .weakKeys()
                   .initialCapacity(1000)
                   .expiration(24, TimeUnit.HOURS)
                   .makeMap();


和这段代码

companyLogo.put("cpr48124", ArrayUtils.toObject(resize (request, ((Byte[])request.getSession().getAttribute(COMPANY_LOGO_KEY+ imageId)))));
companyLogo.get("cpr48124");


但是companyLogo.get("cpr48124");为空。怎么可能呢?

最佳答案

我不熟悉MapMaker,但是我猜weakKeys可能是您的问题。

由于没有其他引用,因此新条目的“弱点”可能使其不可用。

08-05 12:02