线程共享类Interners

发布时间 2023-11-21 15:59:42作者: kd最棒
Interners属于Google开源类库Guava,用于创建线程安全,线程共享的实例缓存,特别是对于字符串的缓存

主要使用场景:

避免内存中有重复的字符串对象,节省空间,提高性能

主要关键方法:

StringInterner newStrongInterner(): 创建一个强引用的字符串缓存,它会持有对字符串的强引用,直到缓存本身被垃圾回收。
StringInterner newWeakInterner(): 创建一个弱引用的字符串缓存,如果没有其他地方持有对该字符串的强引用,允许垃圾回收缓存中的字符串实例。

<E> Interner<E> asInterner(ConcurrentMap<E, E> map): 将一个 ConcurrentMap 转换为 Interner,以便在其中缓存对象。

<E> Interner<E> asInterner(Function<E, E> conversion): 提供一个函数,以便将对象转换为缓存中的键,然后返回一个 Interner,该键使用这个函数进行转换。