public final class InternCache
extends java.util.concurrent.ConcurrentHashMap<java.lang.String,java.lang.String>
Note: that this class extends LinkedHashMap
is an implementation
detail -- no code should ever directly call Map methods.
java.util.concurrent.ConcurrentHashMap.KeySetView<K,V>
Modifier and Type | Field and Description |
---|---|
static InternCache |
instance |
private java.lang.Object |
lock
As minor optimization let's try to avoid "flush storms",
cases where multiple threads might try to concurrently
flush the map.
|
private static int |
MAX_ENTRIES
Size to use is somewhat arbitrary, so let's choose something that's
neither too small (low hit ratio) nor too large (waste of memory).
|
private static long |
serialVersionUID |
Modifier | Constructor and Description |
---|---|
private |
InternCache() |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
intern(java.lang.String input) |
clear, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, equals, forEach, forEach, forEach, forEachEntry, forEachEntry, forEachKey, forEachKey, forEachValue, forEachValue, get, getOrDefault, hashCode, isEmpty, keys, keySet, keySet, mappingCount, merge, newKeySet, newKeySet, put, putAll, putIfAbsent, reduce, reduceEntries, reduceEntries, reduceEntriesToDouble, reduceEntriesToInt, reduceEntriesToLong, reduceKeys, reduceKeys, reduceKeysToDouble, reduceKeysToInt, reduceKeysToLong, reduceToDouble, reduceToInt, reduceToLong, reduceValues, reduceValues, reduceValuesToDouble, reduceValuesToInt, reduceValuesToLong, remove, remove, replace, replace, replaceAll, search, searchEntries, searchKeys, searchValues, size, toString, values
private static final long serialVersionUID
private static final int MAX_ENTRIES
One consideration is possible attack via colliding String.hashCode()
;
because of this, limit to reasonably low setting.
public static final InternCache instance
private final java.lang.Object lock