# Package com.fasterxml.jackson.core.util

Utility classes used by Jackson Core functionality.

See: Description

Interface Summary
BufferRecycler.Gettable: Tag-on interface to allow various other types to expose `BufferRecycler` they are constructed with.
DefaultPrettyPrinter.Indenter: Interface that defines objects that can produce indentation used to separate object entries and array values.
Instantiatable<T>: Add-on interface used to indicate things that may be "blueprint" objects which can not be used as is, but are used for creating usable per-process (serialization, deserialization) instances, using `Instantiatable.createInstance()` method.
JacksonFeature: Basic API implemented by Enums used for simple Jackson "features": on/off settings and capabilities exposed as something that can be internally represented as bit sets.
JsonGeneratorDecorator: Simple interface to allow adding decorators around `JsonGenerator`s.
RecyclerPool<P extends RecyclerPool.WithPool<P>>: API for object pools that control creation and possible reuse of objects that are costly to create (often things like encoding/decoding buffers).
RecyclerPool.WithPool<P extends RecyclerPool.WithPool<P>>: Simple add-on interface that poolable entities must implement.

Class Summary
BufferRecycler: This is a small utility class, whose main functionality is to allow simple reuse of raw byte/char buffers.
BufferRecyclers: Deprecated Since 2.16 recycling aspects are handled via `RecyclerPool`.
ByteArrayBuilder: Helper class that is similar to `ByteArrayOutputStream` in usage, but more geared to Jackson use cases internally.
DefaultIndenter: Default linefeed-based indenter, used by `DefaultPrettyPrinter` (unless overridden).
DefaultPrettyPrinter: Default `PrettyPrinter` implementation that uses 2-space indentation with platform-default linefeeds.
DefaultPrettyPrinter.FixedSpaceIndenter: This is a very simple indenter that only adds a single space for indentation.
DefaultPrettyPrinter.NopIndenter: Dummy implementation that adds no indentation whatsoever
InternCache: Singleton class that adds a simple first-level cache in front of regular String.intern() functionality.
JacksonFeatureSet<F extends JacksonFeature>: Container similar to `EnumSet` meant for storing sets of `JacksonFeature`s (usually `Enum`s): main difference being that these sets are immutable.
JsonGeneratorDelegate
JsonParserDelegate: Helper class that implements delegation pattern for `JsonParser`, to allow for simple overridability of basic parsing functionality.
JsonParserSequence: Helper class that can be used to sequence multiple physical `JsonParser`s to create a single logical sequence of tokens, as a single `JsonParser`.
JsonRecyclerPools: Set of `RecyclerPool` implementations to be used by the default JSON-backed `JsonFactory` for recycling `BufferRecycler` containers.
JsonRecyclerPools.BoundedPool: `RecyclerPool` implementation that uses a bounded queue (`ArrayBlockingQueue` for recycling instances.
JsonRecyclerPools.ConcurrentDequePool: `RecyclerPool` implementation that uses `ConcurrentLinkedDeque` for recycling instances.
JsonRecyclerPools.LockFreePool: Deprecated Since 2.18: use other implementations instead
JsonRecyclerPools.NonRecyclingPool: Dummy `RecyclerPool` implementation that does not recycle anything but simply creates new instances when asked to acquire items.
JsonRecyclerPools.ThreadLocalPool: `ThreadLocal`-based `RecyclerPool` implementation used for recycling `BufferRecycler` instances: see `RecyclerPool.ThreadLocalPoolBase` for full explanation of functioning.
MinimalPrettyPrinter: `PrettyPrinter` implementation that adds no indentation, just implements everything necessary for value output to work as expected, and provide simpler extension points to allow for creating simple custom implementations that add specific decoration or overrides.
ReadConstrainedTextBuffer
RecyclerPool.BoundedPoolBase<P extends RecyclerPool.WithPool<P>>: `RecyclerPool` implementation that uses a bounded queue (`ArrayBlockingQueue` for recycling instances.
RecyclerPool.ConcurrentDequePoolBase<P extends RecyclerPool.WithPool<P>>: `RecyclerPool` implementation that uses `ConcurrentLinkedDeque` for recycling instances.
RecyclerPool.LockFreePoolBase<P extends RecyclerPool.WithPool<P>>: Deprecated Since 2.18: use other implementations
RecyclerPool.LockFreePoolBase.Node<P>
RecyclerPool.NonRecyclingPoolBase<P extends RecyclerPool.WithPool<P>>: `RecyclerPool` implementation that does not use any pool but simply creates new instances when necessary.
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.
RecyclerPool.ThreadLocalPoolBase<P extends RecyclerPool.WithPool<P>>: Default `RecyclerPool` implementation that uses `ThreadLocal` for recycling instances.
RequestPayload: Container object used to contain optional information on content being parsed, passed to `JsonParseException` in case of exception being thrown; this may be useful for caller to display information on failure.
Separators: Value class used with some `PrettyPrinter` implements
TextBuffer: TextBuffer is a class similar to `StringBuffer`, with following differences: TextBuffer uses segments character arrays, to avoid having to do additional array copies when array is not big enough.
VersionUtil: Functionality for supporting exposing of component `Version`s.

Enum Summary
Separators.Spacing: Define the spacing around elements like commas and colons.

## Package com.fasterxml.jackson.core.util Description

Utility classes used by Jackson Core functionality.