Home | @ankurm

// Java · Spring · Hibernate · JUnit · Assembly · CS Core

Deep, tested guides for Java & the JVM — and the computer-science fundamentals underneath.

From Spring Boot and Hibernate migration playbooks to JUnit testing, 8086 assembly, and AI in Java, ankurm.com is a reference-grade library of tutorials written from real debugging experience — not rephrased docs.

“Every great developer was once a beginner who didn’t quit.”

Latest From the Blog

The 10 most recent posts, updated automatically as new content goes live.

  • Spring Framework 6 to 7 Migration Guide: Breaking Changes, Deprecated APIs, and Upgrade Checklist
    A practical Spring Framework 6 to 7 migration guide covering the Jakarta EE 11 baseline, removed and deprecated APIs, AOT and GraalVM changes, BeanRegistrar and proxy lifecycle changes, JSpecify null safety, testing and security implications, an upgrade checklist, and an AI prompt to scan your project.
  • Structured Concurrency in Java: From Your First StructuredTaskScope to Production Patterns (JDK 25/26)
    A beginner-to-advanced guide to structured concurrency in Java (JDK 25/26). Learn StructuredTaskScope, Joiners (allSuccessfulOrThrow, anySuccessfulOrThrow, race), timeouts, custom joiners, failure handling, thread-dump observability, and how it compares to CompletableFuture — with runnable code, real output, and a diagram.
  • Interpreter Design Pattern in Java: Building an Expression Evaluator
    Learn the Interpreter design pattern in Java by building a working math expression evaluator. Understand abstract syntax trees, terminal vs. non-terminal expressions, and where this pattern appears in SQL engines, regex, and Spring SpEL.
  • GoF Design Patterns in Java: The Complete Guide (All 23 Patterns)
    Complete reference for all 23 Gang of Four design patterns implemented in Java 17. Each pattern has a dedicated post with beginner-to-advanced coverage, full runnable code, UML diagram, and console output. Creational, Structural, and Behavioral patterns with real-world examples and JDK cross-references.
  • Visitor Design Pattern in Java: Complete Guide with Examples
    The Visitor pattern lets you add new operations to a class hierarchy without modifying it. Each operation is a separate Visitor class; elements accept visitors via double dispatch. Complete Java guide: shape hierarchy with AreaCalculator and PerimeterCalculator visitors, double dispatch explained, when Visitor beats a switch statement, and when it’s overkill.
  • Template Method Design Pattern in Java: Complete Guide with Examples
    The Template Method pattern defines the skeleton of an algorithm in a base class and lets subclasses fill in the steps — without changing the overall structure. Complete Java guide: data migration pipeline with invariant skeleton, overridable hooks, and the Hollywood Principle. Includes comparison with Strategy and when to use each.
  • Strategy Design Pattern in Java: Complete Guide with Examples
    The Strategy pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable at runtime. No more switch statements for algorithm selection. Complete Java guide: sorting strategy with BubbleSort/MergeSort/QuickSort, runtime selection, Java 8 functional shortcut with Comparator, and when Strategy is overkill.
  • State Design Pattern in Java: Complete Guide with Examples
    The State pattern lets an object change its behaviour when its internal state changes — as if the object changed its class. Eliminate sprawling if-else state machines. Complete Java guide: traffic light example, state-driven transitions, how State differs from Strategy, vending machine walkthrough, and when to use enums vs State objects.
  • Observer Design Pattern in Java: Complete Guide with Examples
    The Observer pattern defines a one-to-many dependency: when one object changes state, all dependents are notified automatically. Complete Java guide: stock price alert system, dynamic subscribe/unsubscribe, push vs pull notification models, java.util.Observable pitfalls, PropertyChangeListener, reactive extensions, and thread-safety considerations.
  • Memento Design Pattern in Java: Complete Guide with Examples
    The Memento pattern captures an object’s internal state in a snapshot and restores it later — without violating encapsulation. Complete Java guide: text editor undo with multi-field state, the Originator/Memento/Caretaker triad, how to keep mementos opaque, serialization as Memento, and bounded undo history management.