开发者社区 问答 正文

Caffeine如何支持基于引用的驱逐策略?

Caffeine如何支持基于引用的驱逐策略?

展开
收起
冲冲冲c 2024-06-21 20:41:42 54 分享 版权
1 条回答
写回答
取消 提交回答
  • Caffeine支持基于引用的驱逐策略,包括弱键(weakKeys)、弱值(weakValues)和软值(softValues)。当键或值没有其他强引用时,它们将被自动从缓存中移除。例如:

    // 当key和缓存元素都不再存在其他强引用的时候驱逐 
    LoadingCache<Key, Graph> graphs = Caffeine.newBuilder() 
    .weakKeys() 
    .weakValues() 
    .build(key -> createExpensiveGraph(key)); 
    
    // 当进行GC的时候,如果内存紧张,软引用的值将被驱逐 
    LoadingCache<Key, Graph> graphs = Caffeine.newBuilder() 
    .softValues() 
    .build(key -> createExpensiveGraph(key));
    
    2024-06-21 21:28:30
    赞同 2 展开评论
问答地址: