## Uses of Class
com.fasterxml.jackson.databind.util.LRUMap

Packages that use LRUMap
com.fasterxml.jackson.databind.deser: Contains implementation classes of deserialization part of data binding.
com.fasterxml.jackson.databind.introspect: Functionality needed for Bean introspection, required for detecting accessors and mutators for Beans, as well as locating and handling method annotations.
com.fasterxml.jackson.databind.type: Package that contains concrete implementations of `JavaType`, as well as the factory (`TypeFactory`) for constructing instances from various input data types (like `Class`, `Type`) and programmatically (for structured types, arrays, `List`s and `Map`s).
com.fasterxml.jackson.databind.util: Utility classes for Mapper package.

### Uses of LRUMap in com.fasterxml.jackson.databind.deser

Fields in com.fasterxml.jackson.databind.deser declared as LRUMap
`protected LRUMap<JavaType,JsonDeserializer<Object>>` DeserializerCache.`_cachedDeserializers` We will also cache some dynamically constructed deserializers; specifically, ones that are expensive to construct.

### Uses of LRUMap in com.fasterxml.jackson.databind.introspect

Fields in com.fasterxml.jackson.databind.introspect declared as LRUMap
`protected LRUMap<Class<?>,Boolean>` JacksonAnnotationIntrospector.`_annotationsInside` Since introspection of annotation types is a performance issue in some use cases (rare, but do exist), let's try a simple cache to reduce need for actual meta-annotation introspection.
`protected LRUMap<JavaType,BasicBeanDescription>` BasicClassIntrospector.`_cachedFCA` Looks like 'forClassAnnotations()' gets called so frequently that we should consider caching to avoid some of the lookups.

### Uses of LRUMap in com.fasterxml.jackson.databind.type

Fields in com.fasterxml.jackson.databind.type declared as LRUMap
`protected LRUMap<Object,JavaType>` TypeFactory.`_typeCache` Since type resolution can be expensive (specifically when resolving actual generic types), we will use small cache to avoid repetitive resolution of core types

Methods in com.fasterxml.jackson.databind.type with parameters of type LRUMap
`TypeFactory` TypeFactory.`withCache(LRUMap<Object,JavaType> cache)` Mutant factory method that will construct new `TypeFactory` with identical settings except for different cache; most likely one with bigger maximum size.

Constructors in com.fasterxml.jackson.databind.type with parameters of type LRUMap
Constructor and Description
`TypeFactory(LRUMap<Object,JavaType> typeCache)`
`TypeFactory(LRUMap<Object,JavaType> typeCache, TypeParser p, TypeModifier[] mods, ClassLoader classLoader)`

### Uses of LRUMap in com.fasterxml.jackson.databind.util

Fields in com.fasterxml.jackson.databind.util declared as LRUMap
`protected LRUMap<ClassKey,PropertyName>` RootNameLookup.`_rootNames` For efficient operation, let's try to minimize number of times we need to introspect root element name to use.