Java

roadmap.sh: https://roadmap.sh/java

Suggested path through the Java nodes. Each node links to its lesson when written.

Nodes

Fundamentals

  • What is Java
  • JDK, JRE, JVM
  • How JVM works
  • Java editions (SE, EE, ME)
  • Compilation and bytecode
  • Setting up the environment
  • Variables and data types
  • Primitive vs reference types
  • Operators
  • Type casting
  • Strings
  • Arrays
  • Control flow (if/else, switch)
  • Loops (for, while, do-while)
  • Methods and parameters

Object-Oriented Programming

  • Classes and objects
  • Constructors
  • Encapsulation
  • Inheritance
  • Polymorphism
  • Abstraction
  • Abstract classes
  • Interfaces
  • Static members
  • Final keyword
  • Packages
  • Access modifiers
  • Nested and inner classes
  • Records
  • Sealed classes
  • Enums

Core APIs

  • Object class
  • equals and hashCode
  • Wrapper classes and autoboxing
  • Optional
  • Date and Time API
  • Math and BigDecimal
  • Regular expressions
  • System and Runtime

Collections Framework

  • Collections overview
  • List, Set, Map
  • ArrayList and LinkedList
  • HashSet and TreeSet
  • HashMap and TreeMap
  • Queue and Deque
  • Iterators
  • Comparable and Comparator
  • Generics

Functional Programming

  • Lambdas
  • Functional interfaces
  • Method references
  • Streams API
  • Collectors

Exception Handling

  • Exceptions and errors
  • try/catch/finally
  • Checked vs unchecked
  • Custom exceptions
  • try-with-resources

Concurrency

  • Threads
  • Runnable and Callable
  • Synchronization
  • Locks
  • Executors and thread pools
  • CompletableFuture
  • Concurrent collections
  • Virtual threads

I/O and Networking

  • File I/O
  • Streams and readers
  • NIO
  • Serialization
  • Sockets

JVM and Memory

  • Memory model
  • Garbage collection
  • Class loading
  • Reflection
  • Annotations

Build Tools and Ecosystem

  • Maven
  • Gradle
  • JUnit
  • Mockito
  • Logging (SLF4J, Logback)
  • JDBC

Resources

See resources.md.

Project ideas

  • Build a CLI task manager that persists tasks to a file using NIO and serialization.
  • Implement a multi-threaded web link checker using an executor pool and CompletableFuture.
  • Create a small library catalog with a JDBC-backed repository and JUnit/Mockito tests.

1 item under this folder.