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

- Packages that use LRUMap
  Package | Description
  --- | ---
  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.introspect

    Fields in com.fasterxml.jackson.databind.introspect declared as LRUMap
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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
    Modifier and Type | Field and Description
    --- | ---
    `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.

Copyright © 2008–2018 FasterXML. All rights reserved.