// 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.”
Java & the JVM
The core of the site — production-tested guides across the Spring and Hibernate ecosystem.
Java118Language features, collections, concurrency & modern Java.
Spring21Spring Boot, configuration, web & data essentials.
Spring Cloud18Gateway, Eureka, Resilience4j & microservice migrations.
Hibernate / JPA51Mappings, fetching, performance & version migrations.
JUnit67JUnit 5 & 6 testing patterns, basics to advanced.
Jackson10JSON serialization, custom (de)serializers & tuning.
AI, Prompts & Patterns
Modern tooling and timeless design sense applied to Java work.
Assembly, Web & More
The breadth that makes this a one-stop study and reference hub.
8086 Assembly48TASM/MASM programs & the complete instruction set.
Operating Systems14Scheduling, synchronization & OS algorithm programs.
TypeScript11Types, generics & practical front-end typing.
Angular7Components, services & app-building walkthroughs.
Code Snippets196Quick, copy-ready solutions to everyday problems.
All Posts→The full chronological archive of everything published.
Computer-Science Fundamentals
Curated program collections for core CS & engineering courses.
Featured Migration Playbooks
The site’s most in-depth, frequently-referenced upgrade guides.
HibernateHibernate 5 → 6 → 7: the breaking changes and the silent ones
Spring SecuritySpring Security 5 → 6 → 7: SecurityFilterChain & silent authorization changes
SpringRestTemplate → RestClient: method mapping, error handling & the exchange() trap
Spring CloudZuul → Spring Cloud Gateway: routes, filters & blocking-call traps
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 ChecklistA 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 EvaluatorLearn 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 ExamplesThe 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 ExamplesThe 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 ExamplesThe 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 ExamplesThe 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 ExamplesThe 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 ExamplesThe 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.