Back to Courses
Beginner
Java Fundamentals
A comprehensive introduction to Java programming. Starting from the very basics, you'll build a solid foundation in object-oriented design, the collections framework, generics, streams, and modern Java syntax — everything you need to write clean, idiomatic Java with confidence.
Course Curriculum
- Introduction to Java & the JVM
- Setting up the development environment (JDK, IntelliJ IDEA)
- Writing and running your first Java program
- Variables, primitive data types & literals
- Operators & expressions
- Reading input with Scanner
- if / else if / else statements
- Switch statements & switch expressions
- for loop & enhanced for loop
- while & do-while loops
- break, continue & labelled statements
- Pattern matching in switch (Java 21)
- Classes, objects & instance members
- Constructors & constructor overloading
- Encapsulation & access modifiers
- Inheritance & method overriding
- Polymorphism & dynamic dispatch
- Abstract classes
- Interfaces & default methods
- Static members & utility classes
- String immutability & common methods
- StringBuilder & string formatting
- Text blocks (Java 15+)
- One-dimensional & multi-dimensional arrays
- Varargs
- Arrays utility class
- Checked vs unchecked exceptions
- try / catch / finally blocks
- try-with-resources
- Creating custom exceptions
- Exception chaining & best practices
- List — ArrayList & LinkedList
- Set — HashSet, LinkedHashSet & TreeSet
- Map — HashMap, LinkedHashMap & TreeMap
- Queue & Deque
- Iterating collections with iterators & streams
- Collections utility methods
- Comparable & Comparator
- Why generics? Type erasure
- Generic classes & interfaces
- Generic methods
- Bounded type parameters
- Wildcards — upper, lower & unbounded
- Lambda expressions
- Built-in functional interfaces — Predicate, Function, Consumer, Supplier
- Method references
- Stream API — filter, map, reduce
- Collectors — toList, groupingBy, joining
- Optional — creation & chaining
- Parallel streams
- Records — immutable data classes
- Sealed classes & interfaces
- Pattern matching for instanceof
- Pattern matching in switch
- Local-variable type inference (var)
- New utility methods on Collections & Strings
- Reading & writing files with NIO.2 (Path, Files)
- Threads & the Runnable interface
- ExecutorService & thread pools
- CompletableFuture basics
- Virtual threads (Java 21)