The Comprehensive Java Developer Kit — Modern JDK 21+ Features, Virtual Threads, Spring Boot 3, Microservices, and Enterprise Architectures.
The Comprehensive Java Developer Kit — Modern JDK 21+ Features, Virtual Threads, Spring Boot 3, Microservices, and Enterprise Architectures.
Curated for engineers, architects, founders, and creators who prioritize signal over noise. Every resource, tool, and guide in this repository is battle-tested, actively maintained, and recognized as an industry standard.
- Core Java Developers → Leveling up with modern JDK 17/21/25 features, Records, and Virtual Threads
- Enterprise Backend Engineers → Architecting resilient microservices with Spring Boot 3, Quarkus, and Micronaut
- System Architects → Tuning the JVM, garbage collection (ZGC), and memory models for high throughput
- Data Engineers → Integrating Java with Kafka, distributed caches, and reactive streaming pipelines
- Software Engineers → Preparing for rigorous Java system design and technical coding interviews
- Roadmaps
- Core Language
- Books
- Courses & Videos
- Cheat Sheets & Quick References
- Testing
- Sponsorship
- Key Articles & Essays
- Build Tools & Dependency Management
- JVM Internals & Performance
- Design Patterns
- Practice Platforms
- Collections & Generics
- Startup Programs & Credits
- Streams & Functional Programming
- Code Quality & Style
- Databases & ORM
- Podcasts
- Microservices & Cloud Native
- IDEs & Extensions
- Web & Backend Development
- 🤝 Contributing
- Android Development
- 📜 License
- Acknowledgments
- Logging & Monitoring
- Security
- Messaging & Event Streaming
- Concurrency & Multithreading
- Object-Oriented Programming
- Competitive Programming in Java
- GitHub Repositories
- Blogs & Newsletters
- Communities & Forums
- 💬 Community & Support
- Roadmap.sh - Java Developer
- Roadmap.sh - Spring Boot
- Java Certification Path - Oracle
- Backend Engineering Roadmap
- Java Developer Roadmap - GitHub
- Full Stack Java Roadmap - GeeksforGeeks
- Roadmap.sh - Android
- Spring Boot Roadmap - TechPrimers
- Roadmap.sh - Backend Developer
- Foreign Function & Memory API (JEP 454) - Interoperate safely and efficiently with code and data outside of the Java runtime.
- Project Loom & Virtual Threads (JEP 444) - Lightweight threads that dramatically reduce the effort of writing high-throughput concurrent applications.
- Pattern Matching for switch (JEP 441) - Express complex data queries cleanly and safely in modern Java.
- Java SE Documentation - Oracle
- Java API Reference
- Java Language Specification
- Java SE 21 Release Notes
- JEP Index - Java Enhancement Proposals
- OpenJDK
- Java 8 Features - Streams, Lambdas, Optional
- Java 11 Features - LTS
- Java 21 LTS Feature Guide - Baeldung
- Java 17 Features - Records, Sealed Classes, Pattern Matching
- What's New in Java - JetBrains Guide
- Java 21 Features - Virtual Threads, Sequenced Collections
- Java Tutorials - Oracle
- Java Basics - GeeksforGeeks
- Baeldung (Best Java reference site)
- Java Programming - W3Schools
- Java by Example
- Jenkov Java Tutorials
- Head First Java - Kathy Sierra & Bert Bates
- Java: A Beginner's Guide - Herbert Schildt
- Java Programming for Beginners - Mark Lassoff
- Introduction to Java Programming - Y. Daniel Liang
- Think Java - Allen Downey & Chris Mayfield (Free)
- Effective Java - Joshua Bloch (Must-read)
- Java: The Complete Reference - Herbert Schildt
- Java 8 in Action - Urma, Fusco, Mycroft
- Clean Code - Robert C. Martin
- Modern Java in Action - Urma, Fusco, Mycroft
- Refactoring - Martin Fowler
- Core Java - Cay Horstmann
- Java Concurrency in Practice - Goetz et al. (Concurrency bible)
- Java Performance - Scott Oaks
- JVM Performance Engineering - Monica Beckwith
- Optimizing Java - Benjamin J Evans
- Functional Programming in Java - Venkat Subramaniam
- Java Puzzlers - Bloch & Gafter
- Spring in Action - Craig Walls
- Spring Boot in Practice - Somnath Musib
- Microservices Patterns - Chris Richardson
- Cloud Native Java - Josh Long & Kenny Bastani
- Jakarta EE Cookbook
- Building Microservices - Sam Newman
- Design Patterns - GoF (Gang of Four)
- Head First Design Patterns
- Clean Architecture - Robert C. Martin
- Designing Data-Intensive Applications - Kleppmann
- Java Programming MOOC - University of Helsinki (Best free Java course)
- CS50P with Java comparisons
- Spring Boot Tutorial - Amigoscode (YouTube)
- Java Brains (YouTube)
- Java by Kunal Kushwaha (YouTube)
- Java Full Course - Telusko (YouTube)
- Java Tutorial for Beginners - Programming with Mosh (YouTube)
- Java Tutorial - Bro Code (YouTube)
- Java Masterclass - Tim Buchalka (Udemy)
- Spring & Hibernate for Beginners - Chad Darby (Udemy)
- Java Programming and Software Engineering - Duke (Coursera)
- Object Oriented Java - UC San Diego (Coursera)
- Hyperskill Java Track
- LinkedIn Learning - Java
- JetBrains Academy - Java
- Telusko
- Amigoscode
- in28minutes
- SivaLabs
- Java Brains
- Kunal Kushwaha
- Bro Code
- TechPrimers
- Daily Code Buffer
- Marco Codes
- Java 8+ Features Cheat Sheet - Baeldung
- Java Collections Cheat Sheet
- Java Design Patterns Summary
- Maven Cheat Sheet
- HTTP Status Codes
- Spring Boot Annotations Cheat Sheet
- JPA Annotations Cheat Sheet
- Java Concurrency Cheat Sheet
- Java Interview Questions - Baeldung
- Java Stream API Cheat Sheet
- Spring Annotations Reference
- Gradle Cheat Sheet
- Testcontainers Java - Lightweight instances of databases, message brokers, and web servers inside Docker for integration testing.
- ArchUnit - Free, simple and extensible library for checking the architecture of your Java code using any plain Java unit test framework.
- JUnit 5
- JUnit 5 User Guide
- Hamcrest
- AssertJ (Fluent assertions)
- Mockito
- JUnit 5 + Mockito - Baeldung
- TestContainers (Spin up DBs in tests)
- Spring Boot Test
- MockMvc
- WireMock (Mock HTTP services)
- REST Assured (API testing)
- JMeter
- Gatling (Scala/Java)
- JMH - Microbenchmarking
- k6
- Effective Java - Key Takeaways
- Java is Still Free - InfoQ
- Project Loom - Virtual Threads Explained
- Reactive vs Imperative Spring
- Project Panama - Foreign Function API
- Project Valhalla - Value Types
- Microservices vs Monolith - Martin Fowler
- SOLID in Java - Examples
- Hexagonal Architecture in Java
- Event Sourcing in Java
- DDD with Spring Boot
- Java Performance Tuning Guide
- Stop Catching Exceptions, Use Result Types
- Java String Performance
- Why Java is Fast Enough - JAXEnter
- Maven Official
- Maven in 5 Minutes
- Maven Central Repository
- Maven Wrapper (mvnw)
- Maven Lifecycle Explained - Baeldung
- mvnrepository.com (Find dependencies)
- Dependabot (Auto dependency updates)
- OWASP Dependency Check
- Snyk (Vulnerability scanning)
- JVM Architecture - GFG
- JVM Internals - Baeldung
- JIT Compilation
- Class Loading in Java
- Java Memory Areas - Heap, Stack, Metaspace
- GC Algorithms Explained
- G1GC, ZGC, Shenandoah
- GCeasy - GC Log Analyzer
- GC Logs Analysis
- GC Tuning Guide - Oracle
- VisualVM
- JProfiler
- Async Profiler
- Arthas - Alibaba Java Diagnostic Tool
- Java Flight Recorder (JFR)
- JMH - Java Microbenchmark Harness
- Java Design Patterns - GitHub
- Head First Design Patterns - Book
- Refactoring Guru - Design Patterns in Java
- LeetCode (Java supported)
- HackerRank Java
- Codeforces
- Codewars
- InterviewBit
- GeeksforGeeks Practice
- CodeChef
- Exercism Java Track
- Spring Guides (Official hands-on guides)
- Hyperskill Java Projects
- JetBrains Academy Java Projects
- Java Coding Challenges - Codingbat
- Java Collections Framework - Oracle
- Collections in Java - Baeldung
- List, Set, Map, Queue - GFG
- Java Deque Interface
- PriorityQueue in Java
- ArrayList vs LinkedList
- HashMap vs TreeMap vs LinkedHashMap
- Collections Utility Class
- AWS Activate (EC2, Lambda, ECS for Java)
- Google Cloud for Startups (GKE, Cloud Run)
- Heroku for Startups
- DigitalOcean Hatch
- Microsoft for Startups (Azure Spring Apps)
- Render
- Railway
- Fly.io
- Oracle Cloud Free Tier (Great Java support)
- JetBrains OSS License (Free IntelliJ for OSS)
- JetBrains Startup Program
- SonarCloud Free for OSS
- GitHub for Startups
- Snyk for Startups
- Sentry for Startups
- Java Streams - Oracle
- Java 8 Streams - Baeldung
- Lambda Expressions
- Functional Interfaces
- Reactive Streams - RxJava
- Project Reactor
- Collectors in Depth
- Stream vs For Loop - Performance
- Method References
- Optional in Java
- Checkstyle
- PMD
- SonarLint (IDE plugin)
- SpotBugs (FindBugs successor)
- SonarQube
- Error Prone - Google
- NullAway
- Hibernate ORM
- Spring Data JPA
- Hibernate Validator
- JPA vs Hibernate - Baeldung
- FetchType LAZY vs EAGER
- N+1 Problem in Hibernate
- JPQL vs SQL
- QueryDSL
- jOOQ (Typesafe SQL)
- MyBatis
- Spring Data Specifications
- Spring Data MongoDB
- Spring Data Redis
- Lettuce - Redis Client
- Spring Data Cassandra
- Jedis - Redis Client
- Inside Java Podcast - Oracle
- Java Pub House
- Enterprise Java Newscast
- InfoQ Java Podcast
- Spring Office Hours
- SE Radio - Java Episodes
- Bootiful Podcast - Josh Long
- Microservices Patterns - Chris Richardson
- Spring Cloud
- Service Discovery - Eureka
- Circuit Breaker - Resilience4j
- Distributed Tracing - Zipkin / Sleuth
- Config Server
- API Gateway - Spring Cloud Gateway
- Docker with Java
- Jib - Containerize Java without Dockerfile
- Kubernetes Java Client
- GraalVM Native Image
- Spring Boot on Kubernetes
- Micrometer (Metrics facade)
- Spring Boot Actuator
- Prometheus + Grafana with Spring Boot
- OpenTelemetry Java
- IntelliJ IDEA (Best Java IDE)
- Eclipse
- NetBeans
- VS Code + Java Extension Pack
- Spring Tool Suite (STS)
- Lombok Plugin
- SonarLint
- String Manipulation
- Rainbow Brackets
- Maven Helper
- Key Promoter X
- RestfulToolkit
- CheckStyle Plugin
- Lombok (Reduce boilerplate)
- MapStruct (Object mapping)
- SDKMAN! (JDK manager)
- jEnv (Java version manager)
- HTTPie
- Postman (API testing)
- Spring Framework
- Spring Boot (Industry standard)
- Spring Cloud
- Spring Security
- Spring Batch
- Spring WebFlux
- Spring AI
- Spring Data JPA
- Spring Integration
- Quarkus (Supersonic Subatomic Java)
- Micronaut
- Vert.x (Reactive, event-driven)
- Jakarta EE
- Spark Java
- Helidon - Oracle
- Dropwizard
- Javalin (Lightweight)
- Building REST with Spring - Baeldung
- OpenAPI / Swagger with Spring Boot
- MapStruct - Object Mapping
- Spring HATEOAS
- Jackson JSON - ObjectMapper
- RESTful API Best Practices
- ModelMapper
- Android Developer - Official
- Android Fundamentals (Codelab)
- Vogella Android Tutorials
- Android Basics in Java - Google
- Retrofit (HTTP client)
- OkHttp
- Gson
- Glide (Image loading)
- Dagger / Hilt (Dependency injection)
- Lottie (Animations)
- Room Database
- SLF4J (Logging facade)
- Logback
- Log4j2
- Logging Best Practices - Baeldung
- Java Util Logging (JUL)
- Micrometer
- Spring Boot Actuator
- Elastic APM Java Agent
- Prometheus + Grafana
- Datadog Java Agent
- OpenTelemetry Java
- New Relic Java Agent
- Spring Security
- Spring Security Guide - Baeldung
- CSRF Protection
- Method Security
- Spring Security with JWT
- OAuth2 with Spring Security
- JWT in Java
- Keycloak (Identity & access management)
- JJWT Library
- Auth0 with Java
- Apache Kafka with Java
- Spring Kafka
- Event-Driven Architecture - Baeldung
- RabbitMQ with Java
- AWS SQS with Java
- Apache ActiveMQ
- CQRS and Event Sourcing in Java
- Spring AMQP
- Axon Framework (CQRS/ES framework)
- Java Concurrency - Oracle Tutorial
- Java Concurrency in Practice - Goetz (Book)
- Semaphores
- Java Synchronized
- ExecutorService
- Locks in Java
- Threads in Java - Baeldung
- CompletableFuture
- CountDownLatch & CyclicBarrier
- volatile Keyword
- Virtual Threads (Java 21) - Project Loom
- Structured Concurrency (Java 21)
- Concurrent Collections
- Fork/Join Framework
- Java Memory Model
- OOP in Java - Oracle Tutorial
- OOP Concepts - GFG
- Pattern Matching for instanceof (Java 16+)
- Composition Over Inheritance
- Java Interfaces vs Abstract Classes
- Java Enums - In-depth
- SOLID Principles in Java - Baeldung
- Java Records (Java 16+)
- Sealed Classes (Java 17+)
- Java for Competitive Programming - GFG
- Java CP Template
- Scanner vs BufferedReader Performance
- Codeforces - Java Submissions
- Fast I/O in Java for CP
- LeetCode Java Solutions
- Java TreeMap / TreeSet for CP
- Java PriorityQueue for DSA
- BigInteger in Java
- Java Arrays.sort() for 2D Arrays
- Effective Java Summary - HugoMatilla
- Java Design Patterns - iluwatar (40k+ stars)
- Spring Boot Examples - in28minutes
- Java Interview Questions
- DSA Bootcamp Java - Kunal Kushwaha
- TheAlgorithms/Java
- Awesome Java
- Java8 Nashorn Examples
- Spring Initializr (Official Spring Boot starter)
- JHipster (Full-stack generator)
- Spring PetClinic (reference app)
- Microservices Demo - Google
- Quarkus Quickstarts
- Baeldung (Best Java blog)
- InfoQ Java
- Inside Java Newsletter - Oracle
- Thorben Janssen Blog (JPA / Hibernate)
- Java Weekly - Baeldung
- A Java Geek - Nicolas Fränkel
- Java Advent Calendar
- Jenkov Tutorials
- Adam Bien's Blog
- Vlad Mihalcea Blog (Hibernate expert)
- Spring Blog
- DZone Java
- r/java
- r/javahelp
- Spring Community Forum
- Dev.to Java Community
- Baeldung Community
- Stack Overflow - Java
- Oracle Java Community
- Java Discord Server
- r/SpringBoot
- JavaOne / Oracle CloudWorld
- Devoxx (Europe's biggest Java conf)
- JavaZone
- JVM Language Summit
- QCon
- Spring I/O
- JFokus
We welcome contributions! Whether you have a new tool to recommend, a book to add, or a link fix, check out CONTRIBUTING.md to get started.
This repository is licensed under the MIT License.
Curated with care by Pavan Joshi • If you find this valuable, please ⭐ star the repository!