Adetayo Akinsanya unkletayo.dev
Engineering / Tags / #Java
#Java 50 Articles

Articles tagged with #Java

A curated list of engineering series, deep dives, and notes related to #Java.

Engineering Java Collections From Scratch • Part 25 2026-11-10

Building a Custom In-Memory Data Store in Java: The Collections Capstone

Build a production-grade in-memory key-value database in Java from scratch using custom data structures: HashMaps, LRU caches, priority queues, and SkipLists.

Read →
Engineering Java Collections From Scratch • Part 24 2026-11-06

Java Specialized Queues: SynchronousQueue Handoffs & DelayQueue Expiration

Master Java SynchronousQueue and DelayQueue internals. Learn zero-capacity thread handoffs and how Delayed Min-Heaps power task schedulers.

Read →
Engineering Java Collections From Scratch • Part 23 2026-11-03

Lock-Free Sorted Range Queries: ConcurrentSkipListMap & SkipLists in Java

Learn how ConcurrentSkipListMap uses SkipLists and atomic CAS pointers to deliver lock-free sorted range queries across 64+ CPU cores in Java.

Read →
Engineering Java Collections From Scratch • Part 22 2026-10-30

Java BlockingQueue Performance: ArrayBlockingQueue vs LinkedBlockingQueue

Compare ArrayBlockingQueue vs LinkedBlockingQueue in Java. Learn how dual-lock splitting eliminates contention in multi-threaded task queues.

Read →
Engineering Java Collections From Scratch • Part 21 2026-10-27

Java IdentityHashMap Internals: Reference Equality & Open Addressing Probing

Learn how Java IdentityHashMap uses reference equality (==) and flat array linear probing to prevent infinite recursion in object graph serializers.

Read →
Engineering Database Internals from First Principles • Part 20 2026-10-23

Building a Custom Transactional Storage Engine in Java: The Database Capstone

Build a complete, working transactional storage engine in Java with slotted memory pages, WAL crash recovery, LRU buffer pool management, and 2PL locking.

Read →
Engineering Docker & Container Internals from First Principles • Part 20 2026-10-23

Building a Custom Container Runtime Engine in Java: The Docker Capstone

Build a functional container runtime CLI in Java with Linux namespaces (unshare), cgroups v2 resource controls, rootfs pivot_root, and container execution.

Read →
Engineering Java Collections From Scratch • Part 20 2026-10-23

Java WeakHashMap Internals: Preventing Memory Leaks with Weak References

Explore how Java WeakHashMap uses WeakReference keys and ReferenceQueue polling to prevent memory leaks in caches and plugin frameworks.

Read →
Engineering Kubernetes & Distributed Orchestration from First Principles • Part 20 2026-10-23

Building a Custom Kubernetes Operator in Java: The Kubernetes Capstone

Build a complete, functional Kubernetes Custom Operator in Java with Custom Resources, Informer watchers, and Observe-Diff-Act reconciliation loops.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 20 2026-10-23

Building a Custom Mini Spring Boot Framework in Java: The Spring Capstone

Build a custom, runnable mini Spring Boot framework in Java from first principles. Synthesize IoC wiring, ASM/reflection scanning, AOP proxies, and embedded HTTP routing.

Read →
Engineering System Design & Distributed Systems from First Principles • Part 20 2026-10-23

Building a Custom Distributed Rate Limiter & Resilience Gateway in Java: The System Design Capstone

Build a custom, runnable Distributed Rate Limiter & Resilience Gateway in Java from first principles. Synthesize token buckets, circuit breakers, and singleflight locks.

Read →
Engineering Java Collections From Scratch • Part 19 2026-10-20

High-Performance Java: How EnumSet and EnumMap Achieve Zero-Allocation Speed

Discover why EnumSet and EnumMap are the fastest collections in Java. Learn how 64-bit long bitmasks execute set operations in 1 CPU cycle.

Read →
Engineering Kafka from First Principles • Part 19 2026-10-20

Building a Real-Time Event-Driven Order System with Apache Kafka

Build an end-to-end event-driven microservices architecture in Java using Apache Kafka, Schema Registry, Avro, Dead Letter Topics, and Kafka Streams.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 19 2026-10-20

Spring Boot Externalized Configuration, Profiles, and Production Observability

Master Spring Boot configuration hierarchy, relaxed property binding, profile management, and production health probes with Spring Boot Actuator.

Read →
Engineering Java Collections From Scratch • Part 18 2026-10-16

Java ConcurrentHashMap Internals: Lock-Free CAS & Fine-Grained Bucket Sync

Deep dive into Java 8+ ConcurrentHashMap internals. Learn how lock-free CAS, volatile reads, and bucket-level synchronized locks handle high concurrency.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 18 2026-10-16

Dynamic Proxies in Spring: JDK Dynamic Proxies vs CGLIB Bytecode Generation

Master Spring dynamic proxies. Compare JDK Dynamic Proxies via interfaces with CGLIB bytecode generation, and learn why Spring Boot defaults to CGLIB.

Read →
Engineering Java Collections From Scratch • Part 17 2026-10-13

Java Concurrent Collections: CopyOnWriteArrayList vs Unmodifiable vs List.of()

Compare Fail-Fast vs Fail-Safe collections in Java. Learn CopyOnWriteArrayList memory mechanics and the difference between List.of() and unmodifiable wrappers.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 17 2026-10-13

Aspect-Oriented Programming (AOP) Concepts: JoinPoints, Pointcuts, and Advices

Master Spring Aspect-Oriented Programming (AOP). Learn how JoinPoints, Pointcuts, and Advices intercept execution to modularize cross-cutting concerns.

Read →
Engineering Java Collections From Scratch • Part 16 2026-10-09

Java PriorityQueue Internals: Building a Min-Heap Array from Scratch

Build a custom PriorityQueue in Java using a flat Min-Heap array. Learn parent-child index formulas, siftUp, and siftDown algorithms.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 16 2026-10-09

Declarative Transaction Management: How @Transactional Works Under the Hood

Understand Spring's @Transactional internal mechanics: TransactionInterceptor proxying, PlatformTransactionManager, propagation levels, and silent rollback failures.

Read →
Engineering Java Collections From Scratch • Part 15 2026-10-06

Java TreeMap Internals: Building a Navigable Sorted Map from Scratch

Build a custom TreeMap in Java. Learn how NavigableMap range queries and custom Comparators maintain sorted keys in O(log N) time.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 15 2026-10-06

Hibernate ORM and Spring Data JPA: Entity Management and N+1 Query Traps

Dissect Hibernate ORM and Spring Data JPA internals. Master the Persistence Context, entity states, lazy loading proxies, and solutions for N+1 queries.

Read →
Engineering Java Collections From Scratch • Part 14 2026-10-02

Red-Black Tree Rotations Explained: Self-Balancing Trees in Java

Demystify Red-Black tree rotations and recoloring. Understand how Java TreeMap and HashMap maintain O(log N) balance guarantees.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 14 2026-10-02

Data Access Primitives: From Plain JDBC to Spring JdbcTemplate

Trace data access evolution in Java from raw JDBC boilerplate and connection leaks to Spring JdbcTemplate and HikariCP connection pool tuning.

Read →
Engineering Java Collections From Scratch • Part 13 2026-09-29

Building a Binary Search Tree (BST) in Java: Recursive Operations & Range Queries

Implement a Binary Search Tree in Java. Learn recursive insertion, in-order traversal for sorted data, and why skewed trees degrade.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 13 2026-09-29

Exception Handling in Spring Web: ControllerAdvice, ExceptionHandlers, and Error Responses

Learn how Spring MVC intercepts exceptions using ControllerAdvice, evaluates HandlerExceptionResolvers, and formats RFC 7807 error responses.

Read →
Engineering Java Collections From Scratch • Part 12 2026-09-25

Building a Custom LRU Cache in Java Using LinkedHashMap

Build an LRU Cache in Java in 10 lines of code by extending LinkedHashMap and leveraging access-order doubly linked entry pointers.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 12 2026-09-25

Spring MVC Request Lifecycle: HandlerMappings, HandlerAdapters, and MessageConverters

Master Spring MVC request processing: how RequestMappingHandlerMapping matches URIs, HandlerMethodArgumentResolvers inspect parameters, and HttpMessageConverters serialize JSON.

Read →
Engineering Java Collections From Scratch • Part 11 2026-09-22

How Java HashSet Works Under the Hood: Building a Set via Composition

Discover how Java HashSet uses composition to wrap HashMap key uniqueness, spending zero extra memory on static dummy value references.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 11 2026-09-22

The Front Controller Pattern: How DispatcherServlet Routes HTTP Requests

Explore the Front Controller architectural pattern in Spring MVC. Learn how DispatcherServlet initializes strategies and routes requests via doDispatch.

Read →
Engineering Java Collections From Scratch • Part 10 2026-09-18

Java HashMap Internals (Part 2): Load Factor, Resizing & Red-Black Treeification

Learn how Java HashMap resizes its bucket table when reaching load factor threshold, and how JDK 8 treeifies long bucket chains.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 10 2026-09-18

Spring Boot Starters & Embedded Web Servers: How Tomcat Runs Inside an Executable JAR

Discover how Spring Boot embeds Apache Tomcat inside executable fat JARs, configures ServletWebServerFactory, and resolves classloading with LaunchedURLClassLoader.

Read →
Engineering Java Collections From Scratch • Part 9 2026-09-15

Java HashMap Internals (Part 1): Hashing Functions, Buckets & Separate Chaining

Deep dive into Java HashMap internals. Learn how hash functions, bitwise masking, and separate bucket chaining store key-value pairs.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 9 2026-09-15

Spring Boot Auto-Configuration Under the Hood: @EnableAutoConfiguration and Conditional Annotations

Learn how Spring Boot loads auto-configuration classes from classpath manifests and uses conditional annotations like @ConditionalOnClass and @ConditionalOnMissingBean.

Read →
Engineering Java Collections From Scratch • Part 8 2026-09-11

Building a Double-Ended Queue (Deque) in Java for Sliding Window Algorithms

Implement a custom ArrayDeque in Java for dual-ended operations. Solve sliding window maximum algorithms in O(1) time.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 8 2026-09-11

Why Spring Boot Exists: Eliminating XML Configuration and Dependency Hell

Trace the architectural history of Spring Framework from XML bean wiring and WAR deployments to Spring Boot opinionated starter dependencies.

Read →
Engineering Java Collections From Scratch • Part 7 2026-09-08

Building a Circular Queue in Java: Array Ring Buffers and Modulo Math

Build a high-performance circular array queue in Java. Eliminate O(N) array shifts using modulo arithmetic head and tail pointers.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 7 2026-09-08

The Complete Spring Bean Lifecycle: Instantiation, Dependency Injection, Init, and Destroy

Master the complete Spring Bean Lifecycle: Instantiation, property population, Aware interfaces, BeanPostProcessors, @PostConstruct, AOP proxying, and @PreDestroy.

Read →
Engineering Java Collections From Scratch • Part 6 2026-09-04

Building a Custom Java Stack: LIFO Mechanics & Why Legacy Stack is Broken

Build a custom LIFO Stack in Java. Learn why java.util.Stack is obsolete and how ArrayDeque provides better performance.

Read →
Engineering Java Collections From Scratch • Part 5 2026-09-01

Java Iterator and modCount: How Fail-Fast Iteration Prevents Data Corruption

Explore how Java iterators use modCount to throw ConcurrentModificationException and prevent silent data corruption during list traversal.

Read →
Engineering Java Collections From Scratch • Part 4 2026-08-28

Java LinkedList Internals: Building a Doubly Linked List from Scratch

Learn how Java LinkedList works under the hood by building a doubly linked list. Compare ArrayList vs LinkedList performance trade-offs.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 4 2026-08-28

Building a Custom IoC Container in Java: Reflection-Based Dependency Wiring

Build a functional Inversion of Control (IoC) container in Java with custom @MyComponent and @MyAutowired annotations and reflection-based wiring.

Read →
Engineering Java Collections From Scratch • Part 3 2026-08-25

How Java ArrayList Works Internally: Building a Dynamic Array from Scratch

Build a custom ArrayList in Java from scratch. Understand dynamic array resizing, System.arraycopy performance, and garbage collection.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 3 2026-08-25

Dependency Injection Mechanics: Constructor, Field, and Setter Injection Trade-offs

Master Spring Dependency Injection styles: Constructor, Field, and Setter Injection mechanics, immutability, unit testing, and circular dependencies.

Read →
Engineering Java Collections From Scratch • Part 2 2026-08-21

Java equals() and hashCode() Contract: Avoiding Silent HashMap Bugs

Learn the unbreakable contract between equals() and hashCode() in Java to prevent silent HashMap lookup bugs and memory leaks.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 2 2026-08-21

Java Reflection Under the Hood: Classloading, Instantiation, and Metadata Inspection

Master Java Reflection: Class.forName(), getDeclaredConstructor(), setAccessible(true), annotation inspection, and ReflectionUtils performance.

Read →
Engineering Java Collections From Scratch • Part 1 2026-08-18

Java Memory Model Explained: Stack vs Heap Allocation for Arrays

Understand how the JVM allocates memory on the stack and heap when declaring primitive and object reference arrays in Java.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 1 2026-08-18

Why Manual Object Wiring Fails at Scale: The Inversion of Control (IoC) Problem

Discover why manual Java object instantiation fails at scale: tight coupling, rigid constructor dependencies, and Inversion of Control (IoC) solutions.

Read →
Engineering Java Collections From Scratch • Part 0 2026-08-14

Mastering Java Collections from First Principles: Series Introduction & Learning Roadmap

Discover what you will learn in this 25-part series on Java Collections internals. Build data structures from scratch and master memory mechanics.

Read →
Engineering Spring & Spring Boot Core Internals from First Principles • Part 0 2026-08-14

Mastering Spring & Spring Boot Core Internals: Series Introduction & Learning Roadmap

Discover what you will learn in this 20-part series on Spring & Spring Boot Core Internals. Build a custom Spring Boot framework from scratch.

Read →