Java Roadmap¶
- Roadmap: https://roadmap.sh/java
1. Learn the Basics¶
- 1.1 Basic Syntax
- 1.2 Lifecycle of a Program
- 1.3 Data Types
- 1.4 Variables and Scopes
- 1.5 Type Casting
- 1.6 Strings and Methods
- 1.7 Math Operations
- 1.8 Arrays
- 1.9 Conditionals
- 1.10 Loops
- 1.11 Basics of OOP
2. Object Oriented Programming¶
2.1 Basics of OOP¶
- 2.1.1 Classes and Objects
- 2.1.2 Attributes and Methods
- 2.1.3 Access Specifiers
- 2.1.4 Static Keyword
- 2.1.5 Final Keyword
- 2.1.6 Nested Classes
- 2.1.7 Packages
2.2 More about OOP¶
- 2.2.1 Object Lifecycle
- 2.2.2 Inheritance
- 2.2.3 Abstraction
- 2.2.4 Method Chaining
- 2.2.5 Encapsulation
- 2.2.6 Interfaces
- 2.2.7 Enums
- 2.2.8 Record
- 2.2.9 Method Overloading / Overriding
- 2.2.10 Initializer Block
- 2.2.11 Static vs Dynamic Binding
- 2.2.12 Pass by Value / Pass by Reference
3. Exception Handling¶
4. Lambda Expressions¶
5. Annotations¶
6. Modules¶
7. Optionals¶
8. Collections¶
- 8.1 Array vs ArrayList
- 8.2 Set
- 8.3 Map
- 8.4 Queue
- 8.5 Dequeue
- 8.6 Stack
- 8.7 Iterator
- 8.8 Generic Collections
9. Dependency Injection¶
10. Concurrency¶
- 10.1 Threads
- 10.2 Virtual Threads
- 10.3 Java Memory Model
- 10.4 volatile keyword
11. Cryptography¶
12. Date and Time¶
13. Networking¶
14. Regular Expressions¶
15. I/O Operations¶
- 15.1 File Operations
16. Functional Programming¶
- 16.1 High Order Functions
- 16.2 Functional Interfaces
- 16.3 Functional Composition
- 16.4 Stream API
17. Build Tools¶
- 17.1 Maven
- 17.2 Gradle
- 17.3 Bazel
18. Web Frameworks¶
- 18.1 Spring (Spring Boot)
- 18.2 Quarkus
- 18.3 Javalin
- 18.4 Play Framework
19. Database Access¶
- 19.1 JDBC
- 19.2 EBean
- 19.3 Hibernate
- 19.4 Spring Data JPA
20. Testing¶
20.1 Unit Testing¶
- 20.1.1 JUnit
- 20.1.2 TestNG
20.2 Integration Testing¶
- 20.2.1 REST Assured
- 20.2.2 JMeter
20.3 Behavior Testing¶
- 20.3.1 Cucumber-JVM
20.4 Mocking¶
- 20.4.1 Mockito
21. Logging Frameworks¶
- 21.1 Logback
- 21.2 Log4j2
- 21.3 SLF4J
- 21.4 TinyLog