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.

10 Modules
60+ Topics
No prior experience needed
Java 21+

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)