Package com.fasterxml.jackson.core.util

# Class JsonRecyclerPools

java.lang.Object
com.fasterxml.jackson.core.util.JsonRecyclerPools

public final class JsonRecyclerPools extends Object
Set of `RecyclerPool` implementations to be used by the default JSON-backed `JsonFactory` for recycling `BufferRecycler` containers.

Since:
  2.16

## Nested Class Summary

Nested Classes
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.

## Constructor Summary

Constructors
Constructor
Description
`JsonRecyclerPools()`

## Method Summary

Modifier and Type
Method
Description
`static RecyclerPool<BufferRecycler>`
`defaultPool()`
`static RecyclerPool<BufferRecycler>`
`newBoundedPool(int size)`
Accessor for constructing a new, non-shared `JsonRecyclerPools.BoundedPool` instance.
`static RecyclerPool<BufferRecycler>`
`newConcurrentDequePool()`
Accessor for constructing a new, non-shared `JsonRecyclerPools.ConcurrentDequePool` instance.
`static RecyclerPool<BufferRecycler>`
`newLockFreePool()`
Accessor for constructing a new, non-shared `JsonRecyclerPools.LockFreePool` instance.
`static RecyclerPool<BufferRecycler>`
`nonRecyclingPool()`
Accessor for getting the shared/global `JsonRecyclerPools.NonRecyclingPool` instance (due to design only one instance ever needed)
`static RecyclerPool<BufferRecycler>`
`sharedBoundedPool()`
Accessor for getting the shared/global `JsonRecyclerPools.BoundedPool` instance.
`static RecyclerPool<BufferRecycler>`
`sharedConcurrentDequePool()`
Accessor for getting the shared/global `JsonRecyclerPools.ConcurrentDequePool` instance.
`static RecyclerPool<BufferRecycler>`
`sharedLockFreePool()`
Accessor for getting the shared/global `JsonRecyclerPools.LockFreePool` instance.
`static RecyclerPool<BufferRecycler>`
`threadLocalPool()`
Accessor for getting the shared/global `JsonRecyclerPools.ThreadLocalPool` instance (due to design only one instance ever needed)

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### JsonRecyclerPools

public JsonRecyclerPools()

## Method Details

### defaultPool

public static RecyclerPool<BufferRecycler> defaultPool()

Returns:
  the default `RecyclerPool` implementation which is the thread local based one: basically alias to `threadLocalPool()`).

### threadLocalPool

public static RecyclerPool<BufferRecycler> threadLocalPool()
Accessor for getting the shared/global `JsonRecyclerPools.ThreadLocalPool` instance (due to design only one instance ever needed)

Returns:
  Globally shared instance of `JsonRecyclerPools.ThreadLocalPool`

### nonRecyclingPool

public static RecyclerPool<BufferRecycler> nonRecyclingPool()
Accessor for getting the shared/global `JsonRecyclerPools.NonRecyclingPool` instance (due to design only one instance ever needed)

Returns:
  Globally shared instance of `JsonRecyclerPools.NonRecyclingPool`.

### sharedConcurrentDequePool

public static RecyclerPool<BufferRecycler> sharedConcurrentDequePool()
Accessor for getting the shared/global `JsonRecyclerPools.ConcurrentDequePool` instance.

Returns:
  Globally shared instance of `JsonRecyclerPools.NonRecyclingPool`.

### newConcurrentDequePool

public static RecyclerPool<BufferRecycler> newConcurrentDequePool()
Accessor for constructing a new, non-shared `JsonRecyclerPools.ConcurrentDequePool` instance.

Returns:
  Globally shared instance of `JsonRecyclerPools.NonRecyclingPool`.

### sharedLockFreePool

public static RecyclerPool<BufferRecycler> sharedLockFreePool()
Accessor for getting the shared/global `JsonRecyclerPools.LockFreePool` instance.

Returns:
  Globally shared instance of `JsonRecyclerPools.LockFreePool`.

### newLockFreePool

public static RecyclerPool<BufferRecycler> newLockFreePool()
Accessor for constructing a new, non-shared `JsonRecyclerPools.LockFreePool` instance.

Returns:
  Globally shared instance of `JsonRecyclerPools.LockFreePool`.

### sharedBoundedPool

public static RecyclerPool<BufferRecycler> sharedBoundedPool()
Accessor for getting the shared/global `JsonRecyclerPools.BoundedPool` instance.

Returns:
  Globally shared instance of `JsonRecyclerPools.BoundedPool`.

### newBoundedPool

public static RecyclerPool<BufferRecycler> newBoundedPool(int size)
Accessor for constructing a new, non-shared `JsonRecyclerPools.BoundedPool` instance.

Parameters:
  `size` - Maximum number of values to pool
Returns:
  Globally shared instance of `JsonRecyclerPools.BoundedPool`.