Understanding the Evolution of Future in Java Asynchronous Programming
The Problem with Basic Future
When discussing asynchronous programming, the Future interface immediately comes to mind. However, JDK's Future has a significant limitation that many developers overlook.
When you call future.get() on the client side, it blocks the current thread until the result is available. This is essentially a half-baked impl ...
Posted on Sat, 12 Sep 2026 16:10:49 +0000 by HaXoRL33T
Comparing Java Local Caching Solutions: Guava, Caffeine, and Ehcache
Overview
What is Caching?
A cache is defined as storage for content that may be needed again in the future, allowing for rapid retrieval. Caches are temporary collections of data that are either duplicates of information located elsewhere or results of computations. Data already present in a cache can be accessed repeatedly at minimal time and ...
Posted on Fri, 04 Sep 2026 16:30:43 +0000 by morleypotter
Understanding Bloom Filters: Efficient Probabilistic Set Membership
Solving Cache Penetration
Consider a typical product lookup service:
public Product getProductById(Long id) {
Product product = cache.get(id);
if (product != null) {
return product;
}
product = database.query(id);
if (product != null) {
cache.put(id, product);
}
return product;
}
If a product ID ...
Posted on Sun, 24 May 2026 19:43:02 +0000 by facets
Guava Cache: A High-Performance JVM-Level In-Memory Caching Library
Guava Cache is a robust, thread-safe in-memory caching library provided by Google's Guava toolkit. Built atop principles similar to ConcurrentHashMap, it extends core map functionality with rich cache-specific features—such as expiration, size constraints, automatic loading, and fine-grained concurrency control—while remaining lightweight and z ...
Posted on Tue, 12 May 2026 13:51:32 +0000 by waterox