## Uses of Interface
com.fasterxml.jackson.core.util.RecyclerPool

Packages that use RecyclerPool
com.fasterxml.jackson.core: Main public API classes of the core streaming JSON processor: most importantly `JsonFactory` used for constructing JSON parser (`JsonParser`) and generator (`JsonGenerator`) instances.
com.fasterxml.jackson.core.util: Utility classes used by Jackson Core functionality.

### Uses of RecyclerPool in com.fasterxml.jackson.core

Fields in com.fasterxml.jackson.core declared as RecyclerPool
`protected RecyclerPool<BufferRecycler>` TSFBuilder.`_recyclerPool`
`protected RecyclerPool<BufferRecycler>` JsonFactory.`_recyclerPool`

Methods in com.fasterxml.jackson.core that return RecyclerPool
`RecyclerPool<BufferRecycler>` JsonFactory.`_getRecyclerPool()` Accessor for getting access to `RecyclerPool` for getting `BufferRecycler` instance to use.
`RecyclerPool<BufferRecycler>` TSFBuilder.`recyclerPool()`

Methods in com.fasterxml.jackson.core with parameters of type RecyclerPool
`B` TSFBuilder.`recyclerPool(RecyclerPool<BufferRecycler> p)`
`JsonFactory` JsonFactory.`setRecyclerPool(RecyclerPool<BufferRecycler> p)`

### Uses of RecyclerPool in com.fasterxml.jackson.core.util

Classes in com.fasterxml.jackson.core.util that implement RecyclerPool
`static class` `JsonRecyclerPools.BoundedPool` `RecyclerPool` implementation that uses a bounded queue (`ArrayBlockingQueue` for recycling instances.
`static class` `JsonRecyclerPools.ConcurrentDequePool` `RecyclerPool` implementation that uses `ConcurrentLinkedDeque` for recycling instances.
`static class` `JsonRecyclerPools.LockFreePool` `RecyclerPool` implementation that uses a lock free linked list for recycling instances.
`static class` `JsonRecyclerPools.NonRecyclingPool` Dummy `RecyclerPool` implementation that does not recycle anything but simply creates new instances when asked to acquire items.
`static class` `JsonRecyclerPools.ThreadLocalPool` `ThreadLocal`-based `RecyclerPool` implementation used for recycling `BufferRecycler` instances: see `RecyclerPool.ThreadLocalPoolBase` for full explanation of functioning.
`static class` `RecyclerPool.BoundedPoolBase<P extends RecyclerPool.WithPool<P>>` `RecyclerPool` implementation that uses a bounded queue (`ArrayBlockingQueue` for recycling instances.
`static class` `RecyclerPool.ConcurrentDequePoolBase<P extends RecyclerPool.WithPool<P>>` `RecyclerPool` implementation that uses `ConcurrentLinkedDeque` for recycling instances.
`static class` `RecyclerPool.LockFreePoolBase<P extends RecyclerPool.WithPool<P>>` `RecyclerPool` implementation that uses a lock free linked list for recycling instances.
`static class` `RecyclerPool.NonRecyclingPoolBase<P extends RecyclerPool.WithPool<P>>` `RecyclerPool` implementation that does not use any pool but simply creates new instances when necessary.
`static class` `RecyclerPool.StatefulImplBase<P extends RecyclerPool.WithPool<P>>` Intermediate base class for instances that are stateful and require special handling with respect to JDK serialization, to retain "global" reference distinct from non-shared ones.
`static class` `RecyclerPool.ThreadLocalPoolBase<P extends RecyclerPool.WithPool<P>>` Default `RecyclerPool` implementation that uses `ThreadLocal` for recycling instances.

Methods in com.fasterxml.jackson.core.util that return RecyclerPool
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`defaultPool()`
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`newBoundedPool(int size)` Accessor for constructing a new, non-shared `JsonRecyclerPools.BoundedPool` instance.
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`newConcurrentDequePool()` Accessor for constructing a new, non-shared `JsonRecyclerPools.ConcurrentDequePool` instance.
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`newLockFreePool()` Accessor for constructing a new, non-shared `JsonRecyclerPools.LockFreePool` instance.
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`nonRecyclingPool()` Accessor for getting the shared/global `JsonRecyclerPools.NonRecyclingPool` instance (due to design only one instance ever needed)
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`sharedBoundedPool()` Accessor for getting the shared/global `JsonRecyclerPools.BoundedPool` instance.
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`sharedConcurrentDequePool()` Accessor for getting the shared/global `JsonRecyclerPools.ConcurrentDequePool` instance.
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`sharedLockFreePool()` Accessor for getting the shared/global `JsonRecyclerPools.LockFreePool` instance.
`static RecyclerPool<BufferRecycler>` JsonRecyclerPools.`threadLocalPool()` Accessor for getting the shared/global `JsonRecyclerPools.ThreadLocalPool` instance (due to design only one instance ever needed)

Methods in com.fasterxml.jackson.core.util with parameters of type RecyclerPool
`BufferRecycler` BufferRecycler.`withPool(RecyclerPool<BufferRecycler> pool)` Method called by owner of this recycler instance, to provide reference to `RecyclerPool` into which instance is to be released (if any)
`P` RecyclerPool.WithPool.`withPool(RecyclerPool<P> pool)` Method to call to add link from pooled item back to pool that handles it