# guava | Google | Knowledge Base | Instagit

Google core libraries for Java

GitHub Stars: 51.8k

Repository: https://github.com/google/guava

---

## Articles

### [Guava Source Code Structure: A Comprehensive Guide to Navigating google/guava](/google/guava/where-can-i-find-guavas-source-code-structure)

Explore the Guava source code structure with this guide. Learn about its modular Maven/Gradle layout and package organization for JRE, Android, and test utilities.

- Tags: internals
- Published: 2026-08-10

### [How Guava Handles Resource Management: Closer and Closeables Explained](/google/guava/how-does-guava-handle-resource-management)

Learn how Guava handles resource management with Closer and Closeables. Safely close I/O objects and emulate try-with-resources on older JDKs for robust code.

- Tags: deep-dive
- Published: 2026-08-10

### [Guava TypeToken and Generics Utilities: A Complete Guide to Runtime Type Reflection](/google/guava/what-are-guavas-typetoken-and-generics-utilities)

Master Guava TypeToken and generics utilities for runtime type reflection. Learn how TypeToken overcomes type erasure for precise type resolution and manipulation.

- Tags: deep-dive
- Published: 2026-08-10

### [How to Use Guava's Joiner and Splitter for String Manipulation](/google/guava/how-to-use-guavas-joiner-and-splitter)

Master Guava's Joiner and Splitter for efficient string manipulation. Concatenate collections and parse delimited text with these powerful, thread-safe utilities.

- Tags: how-to-guide
- Published: 2026-08-10

### [What Is Guava's CharMatcher? A Complete Guide to Character Matching in Java](/google/guava/what-is-guavas-charmatcher)

Explore Guava's CharMatcher, a powerful tool for efficient character matching and string manipulation in Java. Optimize your code with this predicate-like class for BMP Unicode characters.

- Tags: deep-dive
- Published: 2026-08-10

### [How to Use Guava's Range Class for Interval Operations in Java](/google/guava/how-to-use-guavas-range-and-interval-classes)

Master Guava's Range class for efficient Java interval operations. Learn to define, test, and combine intervals with clear examples.

- Tags: how-to-guide
- Published: 2026-08-10

### [Guava Preconditions for Input Validation: Complete Guide to checkArgument and Validation Utilities](/google/guava/what-are-guavas-preconditions-for-input-validation)

Master Guava preconditions for robust input validation. Explore checkArgument, checkState, and checkNotNull utilities to ensure code quality and prevent errors.

- Tags: deep-dive
- Published: 2026-08-10

### [Guava Common Predicates and Functions: A Complete Guide to Functional Utilities](/google/guava/what-are-guavas-common-predicates-and-functions)

Explore Guava's Predicates and Functions for efficient Java collection manipulation. Discover reusable factories for filtering, transforming, and composing logic with this comprehensive guide.

- Tags: deep-dive
- Published: 2026-08-10

### [How to Use Guava's ListenableFuture: A Complete Guide to Async Callbacks and Composition](/google/guava/how-to-use-guavas-listenablefuture)

Learn how to use Guava's ListenableFuture to handle async callbacks and compose non-blocking pipelines. This complete guide shows you how to get started easily.

- Tags: tutorial
- Published: 2026-08-10

### [Guava's Concurrency Utilities: A Comprehensive Guide to ListenableFuture, RateLimiter, and Service Management](/google/guava/what-is-guavas-concurrency-utilities)

Explore Guava's concurrency utilities for advanced Java async programming. Learn about ListenableFuture, RateLimiter, and Service management for efficient concurrent applications.

- Tags: deep-dive
- Published: 2026-08-10

### [How to Implement Custom Guava Caches: A Complete Guide to CacheBuilder Extensions](/google/guava/how-to-implement-custom-guava-caches)

Implement custom Guava caches by extending CacheLoader, Weigher, and RemovalListener. Build specialized LoadingCache instances with CacheBuilder for efficient data management.

- Tags: how-to-guide
- Published: 2026-08-10

### [Understanding Guava's Caching Mechanisms: CacheBuilder and LoadingCache Tutorial](/google/guava/what-are-guavas-caching-mechanisms)

Explore Guava's caching mechanisms with CacheBuilder and LoadingCache. Learn automatic loading, eviction, expiration, and statistics to boost your application performance.

- Tags: tutorial
- Published: 2026-08-10

### [How to Integrate Guava's EventBus with Spring, Guice, RxJava, and Other Frameworks](/google/guava/how-to-integrate-guavas-event-bus-with-other-frameworks)

Learn how to integrate Guava's EventBus with Spring, Guice, RxJava, and other frameworks. Expose it as a singleton bean or bridge to reactive streams for seamless event handling.

- Tags: how-to-guide
- Published: 2026-08-10

### [What Is Guava's EventBus? A Complete Guide to Google's Publish-Subscribe Framework](/google/guava/what-is-guavas-event-bus)

Learn about Guava's EventBus, a publish-subscribe framework for decoupled component communication. Explore synchronous and asynchronous event dispatch with annotated methods.

- Tags: deep-dive
- Published: 2026-08-10

### [How to Use Guava String Manipulation Utilities: Complete Guide to Strings, Joiner, and Splitter](/google/guava/how-to-use-guavas-string-manipulation-utilities)

Master Guava string manipulation with this guide. Learn to use Strings, Joiner, Splitter, and more for efficient null-safe text processing.

- Tags: how-to-guide
- Published: 2026-08-10

### [Guava's Functional Programming Features: A Complete Guide to Functional Utilities in Java](/google/guava/what-are-guavas-functional-programming-features)

Explore Guava's functional programming features, from legacy interfaces to FluentIterable and Optional. Enhance your Java code with powerful functional utilities.

- Tags: deep-dive
- Published: 2026-08-10

### [How Does Guava Handle Nulls? Defensive Programming and Null-Safety in Practice](/google/guava/how-does-guava-handle-nulls)

Learn how Guava handles nulls with defensive programming using Preconditions.checkNotNull and @Nullable annotations for explicit null-safety.

- Tags: deep-dive
- Published: 2026-08-10

### [Google Guava Common Utilities: Preconditions, Collections, Caching, and Essential Helpers](/google/guava/what-are-guavas-features-for-common-utilities)

Explore Google Guava common utilities like Preconditions, immutable collections, caching, and RateLimiter. Reduce boilerplate and prevent errors in your Java code.

- Tags: getting-started
- Published: 2026-08-10

### [How to Use Guava Immutable Collections: A Complete Guide to ImmutableList, ImmutableSet, and ImmutableMap](/google/guava/how-to-use-guava-immutable-collections)

Master Guava immutable collections like ImmutableList, ImmutableSet, and ImmutableMap. Learn to create thread-safe, null-safe, and unmodifiable data structures with our complete guide.

- Tags: how-to-guide
- Published: 2026-08-10

### [Core Guava Collections: Immutable, Mutable, and Special-Purpose Types Explained](/google/guava/what-are-the-core-guava-collections)

Explore Google Guava's core collections including immutable, mutable, and special-purpose types like Multimap and BiMap to enhance your Java development.

- Tags: deep-dive
- Published: 2026-08-10

### [How to Include Guava in a Gradle Project: Complete Setup Guide](/google/guava/how-to-include-guava-in-a-gradle-project)

Easily add Guava to your Gradle project. Learn the simple steps to include the Guava library using implementation or api configurations for JVM and Android development.

- Tags: how-to-guide
- Published: 2026-08-10

### [How to Include Guava in a Maven Project: Complete Dependency Guide](/google/guava/how-to-include-guava-in-a-maven-project)

Easily include Guava in your Maven project by declaring the correct dependency. Learn to choose between -jre and -android versions for your build.

- Tags: how-to-guide
- Published: 2026-08-10

### [What Is the Main Purpose of Guava? Google's Essential Java Toolkit](/google/guava/what-is-the-main-purpose-of-guava)

Discover Guava, Google's essential Java utility library. Simplify development with high-performance collections, functional helpers, concurrency tools, and I/O utilities to reduce boilerplate.

- Tags: getting-started
- Published: 2026-08-10

### [Migration Guide: Moving from Guava's Deprecated APIs to Standard Java Alternatives](/google/guava/guava-migration-deprecated-apis-java-alternatives)

Migrate from Guava's deprecated APIs to standard Java. Replace Preconditions, FluentFuture, and functional interfaces with JDK alternatives to modernize your code and remove dependencies.

- Tags: migration-guide
- Published: 2026-08-08

### [Guava @Beta APIs: What They Are and When It's Safe to Use Them](/google/guava/guava-beta-apis-usage-safety)

Understand Guava @Beta APIs. Learn what they are and discover when it's safe to use these potentially changing features in your Java projects to avoid breaking changes.

- Tags: deep-dive
- Published: 2026-08-08

### [How to Use Guava's Math Utilities: IntMath, LongMath, and BigIntegerMath](/google/guava/guava-math-utilities-intmath-longmath-bigintegermath)

Learn how to use Guava's math utilities like IntMath, LongMath, and BigIntegerMath for overflow-safe arithmetic, rounding division, and combinatorial operations. Enhance your Java code with these powerful tools.

- Tags: how-to-guide
- Published: 2026-08-08

### [Understanding Guava's AbstractFuture for Custom Asynchronous Computations](/google/guava/guava-abstractfuture-custom-asynchronous-computations)

Master Guava's AbstractFuture for custom async computations. Learn how this lock-free ListenableFuture implementation manages completion, cancellation, and listeners.

- Tags: deep-dive
- Published: 2026-08-08

### [How to Use Guava's ByteSource and ByteSink for I/O Operations](/google/guava/guava-bytesource-bytesink-io-operations)

Learn how to use Guava ByteSource and ByteSink for efficient I/O operations. Simplify resource management and eliminate boilerplate with these powerful abstractions.

- Tags: how-to-guide
- Published: 2026-08-08

### [Guava MinMaxPriorityQueue: Complete Guide to Double-Ended Priority Queues in Java](/google/guava/guava-minmaxpriorityqueue-use-cases)

Explore Guava MinMaxPriorityQueue, a Java double-ended priority queue. Get O(1) access to min/max elements with O(log n) insertions/deletions. Learn its use cases.

- Tags: deep-dive
- Published: 2026-08-08

### [Understanding Guava's FluentIterable for Functional-Style Iteration](/google/guava/guava-fluentiterable-functional-iteration)

Learn Guava's FluentIterable to chain operations for functional-style iteration. It's a lazy Java 7 alternative to Streams for efficient data processing.

- Tags: deep-dive
- Published: 2026-08-08

### [Guava BiMap Use Cases and Implementation: A Complete Guide to Bidirectional Maps](/google/guava/guava-bimap-use-cases-implementation)

Explore Guava BiMap use cases and implementation. Learn how this bidirectional map enforces one-to-one mapping and offers constant-time reverse lookups via inverse().

- Tags: deep-dive
- Published: 2026-08-08

### [Understanding Guava's Table for Two-Dimensional Maps: A Complete Guide](/google/guava/guava-table-two-dimensional-maps)

Explore Guava's Table for two dimensional maps. This guide details its row and column views for efficient data management in Java.

- Tags: deep-dive
- Published: 2026-08-08

### [How to Use Guava CharMatcher for Character Filtering and Matching: A Complete Guide](/google/guava/guava-charmatcher-character-filtering-matching)

Master Guava CharMatcher for efficient character filtering and matching. This guide offers a fluent API and practical examples for seamless text processing.

- Tags: how-to-guide
- Published: 2026-08-08

### [Guava's Stopwatch for Accurate Benchmarking and Timing: A Complete Guide](/google/guava/guava-stopwatch-benchmarking-timing)

Master Guava's Stopwatch for precise benchmarking and timing. Learn to measure elapsed time effectively with System.nanoTime or a custom Ticker for efficient logging and metrics. Get started now!

- Tags: tutorial
- Published: 2026-08-08

### [Understanding Guava's Hashing Utilities: HashFunction, Hasher, and HashCode Explained](/google/guava/guava-hashing-utilities-hashfunction-hasher-hashcode)

Master Guava's hashing framework. Learn how HashFunction Hasher and HashCode work together for efficient streaming and one-shot hashing operations. Unlock Guava hashing today.

- Tags: deep-dive
- Published: 2026-08-08

### [How to Use Guava's EventBus for Publish-Subscribe Communication](/google/guava/guava-eventbus-publish-subscribe)

Learn how to implement publish-subscribe communication in Java using Guava's EventBus. Discover a powerful way for components to interact without direct references.

- Tags: how-to-guide
- Published: 2026-08-08

### [Guava Interners for String and Object Interning: Performance Benefits Explained](/google/guava/guava-interners-string-object-interning-performance)

Discover Guava Interners for high-performance string and object interning. Learn how Guava offers a thread-safe alternative to String.intern() with strong or weak references for immutable types.

- Tags: deep-dive
- Published: 2026-08-08

### [How to Create and Traverse Graphs Using Guava's Graph Library](/google/guava/guava-create-traverse-graphs)

Learn to create and traverse graphs with Guava. Use GraphBuilder and Traverser for efficient BFS and DFS graph operations.

- Tags: how-to-guide
- Published: 2026-08-08

### [Understanding Guava Preconditions for Argument Validation: A Complete Guide](/google/guava/guava-preconditions-argument-validation)

Master Guava Preconditions for robust argument validation. Learn to throw exceptions with lazy messages for cleaner code and fewer errors. A complete guide.

- Tags: how-to-guide
- Published: 2026-08-08

### [How to Use Guava's Optional to Handle Null Values Properly](/google/guava/guava-optional-handle-null-values)

Master Guava Optional to eliminate null checks. Learn how this immutable container gracefully handles missing values in your Java code for cleaner, safer applications.

- Tags: how-to-guide
- Published: 2026-08-08

### [How to Implement Efficient String Manipulation with Guava's Splitter and Joiner](/google/guava/guava-string-manipulation-splitter-joiner)

Learn efficient string manipulation with Guava's Splitter and Joiner. Optimize splitting and joining with minimal memory overhead using these thread-safe APIs.

- Tags: how-to-guide
- Published: 2026-08-08

### [Guava Multimap vs Map: When to Use Which Data Structure](/google/guava/guava-multimap-vs-map-usage)

Understand Guava Multimap vs Map. Use Map for single values and Multimap for multiple values per key, reducing boilerplate code and simplifying data management.

- Tags: comparison
- Published: 2026-08-08

### [How to Use Guava's CacheBuilder for In-Memory Caching with Expiration Policies](/google/guava/guava-cachebuilder-in-memory-caching-expiration)

Learn to use Guava CacheBuilder for efficient in-memory caching. Implement expiration policies like expireAfterWrite and expireAfterAccess to manage cache data effectively.

- Tags: how-to-guide
- Published: 2026-08-08

### [How Does Guava's ImmutableList Differ from Collections.unmodifiableList()? When to Use Each](/google/guava/guava-immutablelist-vs-collections-unmodifiablelist)

Discover the key differences between Guava's ImmutableList and Collections.unmodifiableList. Learn when to use each for guaranteed immutability or a read-only view.

- Tags: deep-dive
- Published: 2026-08-08

