ConcurrentMap<String,Book> books = new MapMaker().concurrencyLevel(2)
.softValues()
.makeMap();
concurrencyLevel():设置允许并发修改map的线程数;
softValues():map的值用SoftReference封装,允许内存低时候垃圾回收;
weakKeys()/weakValues():map的键或值用WeakReferences封装,允许内存低时候垃圾回收;