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,该键使用这个函数进行转换。