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

Packages that use RecyclerPool
Package
Description
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
Modifier and Type
Field
Description
`protected RecyclerPool<BufferRecycler>`
JsonFactory.`_recyclerPool`
`protected RecyclerPool<BufferRecycler>`
TSFBuilder.`_recyclerPool`
Methods in com.fasterxml.jackson.core that return RecyclerPool
Modifier and Type
Method
Description
`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
Modifier and Type
Method
Description
`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
Modifier and Type
Class
Description
`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
Modifier and Type
Method
Description
`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
Modifier and Type
Method
Description
`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