Code Explainers

Java code explainers

java
public class ThumbnailProcessor {
 
    private static final int MAX_CONCURRENCY = 4;
 

Bounded parallel thumbnail rendering in Java

concurrency thread-pool futures
Intermediate 7 steps
java
public class SortedListMerger {
 
    public static int[] merge(int[] a, int[] b) {
        int[] result = new int[a.length + b.length];

Merging two sorted arrays in Java

two-pointers merging arrays
Beginner 6 steps
java
import java.util.ArrayDeque;
import java.util.Deque;
 
public final class RollingAverage {

A rolling average over a sliding window

sliding-window running-sum deque
Intermediate 7 steps
java
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = StrongPasswordValidator.class)
@Documented

Building a custom @StrongPassword validator in Spring

bean-validation annotations regex
Intermediate 7 steps
java
@Component
public class JwtAuthenticationFilter extends OncePerRequestFilter {
 
    private final JwtTokenProvider tokenProvider;

How a JWT auth filter works in Spring

authentication jwt servlet-filter
Intermediate 8 steps
java
@Entity
@Table(name = "accounts")
public class Account {
 

Optimistic locking with @Version in Spring

optimistic-locking jpa concurrency
Advanced 7 steps
java
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.math.BigInteger;
 

A thread-safe memoized factorial cache

memoization thread-safety caching
Intermediate 6 steps
java
@RestController
@RequestMapping("/webhooks/stripe")
public class StripeWebhookController {
 

How a Stripe webhook controller works in Spring

webhooks signature-verification event-handling
Intermediate 7 steps
java
public final class RegistrationValidator {
 
    private static final Pattern EMAIL = Pattern.compile("^[\\w.+-]+@[\\w-]+\\.[\\w.-]+$");
    private static final Pattern USERNAME = Pattern.compile("^[a-zA-Z0-9_]{3,20}$");

Accumulating validation errors in Java

validation regex error-accumulation
Beginner 9 steps
java
public class WorkPipeline {
    private final BlockingQueue<Task> queue = new LinkedBlockingQueue<>(1000);
    private static final Task POISON = new Task(-1, null);
    private final ExecutorService consumers = Executors.newFixedThreadPool(4);

A producer-consumer pipeline in Java

concurrency producer-consumer blocking-queue
Intermediate 8 steps
java
package com.example.payments.config;
 
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;

Type-safe config with Spring records

configuration validation records
Intermediate 6 steps
java
@Component
public class RequestTimingInterceptor implements HandlerInterceptor {
 
    private static final Logger log = LoggerFactory.getLogger(RequestTimingInterceptor.class);

How a Spring HandlerInterceptor times requests

interceptor request-lifecycle logging
Intermediate 6 steps
java
@RestController
@RequestMapping("/api/products")
public class ProductController {
 

How a paginated REST controller works in Spring

pagination dto-mapping dependency-injection
Intermediate 8 steps
java
@WebMvcTest(OrderController.class)
class OrderControllerTest {
 
    @Autowired

Slice testing a controller with @WebMvcTest in Spring

testing mocking http
Intermediate 8 steps
java
public final class BusinessDays {
 
    private BusinessDays() {
    }

Counting business days between two dates in Java

date arithmetic utility class streams
Intermediate 7 steps
java
import java.time.Duration;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;

A safe recurring heartbeat scheduler in Java

concurrency scheduling thread-safety
Intermediate 6 steps
java
package com.example.monitoring;
 
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;

A custom replica health check in Spring

health-check actuator monitoring
Intermediate 7 steps
java
@Repository
public interface OrderRepository extends JpaRepository<Order, Long> {
 
    @QueryHints(@QueryHint(name = HINT_FETCH_SIZE, value = "1000"))

Streaming large result sets in Spring Data JPA

streaming jpa memory-management
Advanced 6 steps