# Package com.fasterxml.jackson.core.util

package com.fasterxml.jackson.core.util
Utility classes used by Jackson Core functionality.

Related Packages
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.
Class
Description
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.Indenter
Interface that defines objects that can produce indentation used to separate object entries and array values.
DefaultPrettyPrinter.NopIndenter
Dummy implementation that adds no indentation whatsoever
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.
InternCache
Singleton class that adds a simple first-level cache in front of regular String.intern() functionality.
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.
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.
JsonGeneratorDecorator
Simple interface to allow adding decorators around `JsonGenerator`s.
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
`RecyclerPool` implementation that uses a lock free linked list for recycling instances.
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<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.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>>
`RecyclerPool` implementation that uses a lock free linked list for recycling instances.
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.
RecyclerPool.WithPool<P extends RecyclerPool.WithPool<P>>
Simple add-on interface that poolable entities must implement.
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
Separators.Spacing
Define the spacing around elements like commas and colons.
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.