@ParametersAreNonnullByDefault

# Package com.google.common.cache

This package contains caching utilities.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  AbstractCache.StatsCounter | Accumulates statistics during the operation of a `Cache` for presentation by `Cache.stats()`.
  Cache<K,V> | A semi-persistent mapping from keys to values.
  LoadingCache<K,V> | A semi-persistent mapping from keys to values.
  RemovalListener<K,V> | An object that can receive a notification when an entry is removed from a cache.
  Weigher<K,V> | Calculates the weights of cache entries.

- Class Summary
  Class | Description
  --- | ---
  AbstractCache<K,V> | This class provides a skeletal implementation of the `Cache` interface to minimize the effort required to implement this interface.
  AbstractCache.SimpleStatsCounter | A thread-safe `AbstractCache.StatsCounter` implementation for use by `Cache` implementors.
  AbstractLoadingCache<K,V> | This class provides a skeletal implementation of the `Cache` interface to minimize the effort required to implement this interface.
  CacheBuilder<K,V> | A builder of `LoadingCache` and `Cache` instances having any combination of the following features: automatic loading of entries into the cache least-recently-used eviction when a maximum size is exceeded time-based expiration of entries, measured since last access or last write keys automatically wrapped in weak references values automatically wrapped in weak or soft references notification of evicted (or otherwise removed) entries accumulation of cache access statistics
  CacheBuilderSpec | A specification of a `CacheBuilder` configuration.
  CacheLoader<K,V> | Computes or retrieves values, based on a key, for use in populating a `LoadingCache`.
  CacheStats | Statistics about the performance of a `Cache`.
  ForwardingCache<K,V> | A cache which forwards all its method calls to another cache.
  ForwardingCache.SimpleForwardingCache<K,V> | A simplified version of `ForwardingCache` where subclasses can pass in an already constructed `Cache` as the delegate.
  ForwardingLoadingCache<K,V> | A cache which forwards all its method calls to another cache.
  ForwardingLoadingCache.SimpleForwardingLoadingCache<K,V> | A simplified version of `ForwardingLoadingCache` where subclasses can pass in an already constructed `LoadingCache` as the delegate.
  RemovalListeners | A collection of common removal listeners.
  RemovalNotification<K,V> | A notification of the removal of a single entry.

- Enum Summary
  Enum | Description
  --- | ---
  RemovalCause | The reason why a cached entry was removed.

- Exception Summary
  Exception | Description
  --- | ---
  CacheLoader.InvalidCacheLoadException | Thrown to indicate that an invalid response was returned from a call to `CacheLoader`.
  CacheLoader.UnsupportedLoadingOperationException | Exception thrown by `loadAll()` to indicate that it is not supported.

## Package com.google.common.cache Description

This package contains caching utilities.

The core interface used to represent caches is `Cache`. In-memory caches can be configured and created using `CacheBuilder`, with cache entries being loaded by `CacheLoader`. Statistics about cache performance are exposed using `CacheStats`.

See the Guava User Guide article on caches.

This package is a part of the open-source Guava libraries.