Java
Strongly typed, object-oriented and everywhere — from Android to banking back-ends.
A complete, job-ready Java course built on Java 21 LTS. Start from zero with the JDK, variables, loops, methods, arrays and strings; master object-oriented design with classes, inheritance, interfaces, records and enums; handle errors and data with exceptions, generics and the Collections framework; then level up with lambdas, streams, file I/O, multithreading, the JVM memory model, JDBC with MySQL, Maven/Gradle, JUnit 5 and modern Java 17-21 features — finishing with your first step into Spring Boot.
43 lessons ~10 h 53 min Beginner → Advanced
What you’ll learn
- Install a JDK 21, and compile, run and debug Java programs from the terminal
- Write clean procedural code with types, operators, control flow, loops, methods, arrays and strings
- Design object-oriented programs with classes, encapsulation, inheritance, polymorphism, interfaces, records and enums
- Handle failures robustly with checked/unchecked exceptions, custom exceptions and try-with-resources
- Use generics and the Collections framework (List, Set, Map, Comparator) and implement equals/hashCode correctly
- Process data declaratively with lambdas, method references, the Streams API, Optional and java.time
- Read and write files with java.nio and build safe concurrent code with threads, executors, CompletableFuture and virtual threads
- Explain JVM memory and garbage collection, and connect to MySQL with JDBC using PreparedStatement and transactions
- Build and test real projects with Maven or Gradle and JUnit 5
- Apply modern Java 17-21 features (sealed types, pattern matching, text blocks) and take your first steps with Spring Boot
Syllabus
6 modules · 43 lessons- 1Introduction, JDK & JVMWhat Java is, how the JDK, JRE and JVM fit together, installing JDK 21 and your first program. 12 min
- 2Variables & data typesPrimitive types, Strings, var, casting and the integer-division trap. 14 min
- 3Operators & expressionsArithmetic, assignment, increment, comparison, logical and ternary operators, plus precedence. 14 min
- 4Reading input with ScannerRead numbers, words and whole lines from the keyboard, and avoid the nextInt/nextLine trap. 12 min
- 5Decisions: if/else & switchif, else if, else, nested conditions, the classic switch and modern switch expressions. 14 min
- 6Loops: for, while & do-whileCounted and conditional loops, the enhanced for, break, continue, labels and nested loops. 15 min
- 7MethodsParameters, return values, overloading, varargs, pass-by-value, scope and recursion. 16 min
- 8ArraysCreate, loop over, copy, sort and search arrays, plus 2D arrays and the Arrays helper class. 16 min
- 9Strings & StringBuilderString methods, immutability, comparison, formatting, text blocks and fast building with StringBuilder. 17 min
- 10Classes & objectsFields, methods, creating objects with new, references, null and toString. 15 min
- 11Constructors & thisDefault and parameterised constructors, overloading, this(...) chaining and initialisation order. 14 min
- 12The static keywordStatic fields, methods, constants, static blocks, nested classes and when to use each. 13 min
- 13Encapsulation & access modifiersprivate, package-private, protected and public; getters, setters, validation and immutable classes. 15 min
- 14Inheritanceextends, super, constructor chaining, the Object class, final classes and composition vs inheritance. 16 min
- 15Polymorphism: overriding & overloadingDynamic dispatch, @Override rules, overloading resolution, upcasting, downcasting and instanceof. 16 min
- 16Abstraction & abstract classesAbstract methods and classes, template methods and when abstraction helps. 13 min
- 17InterfacesContracts, multiple implementation, default, static and private methods, and interface vs abstract class. 16 min
- 18RecordsConcise immutable data carriers: components, compact constructors, methods and limitations. 12 min
- 19EnumsType-safe constants with fields, constructors, methods, switch, values(), EnumMap and EnumSet. 14 min
- 20Packages, imports & JARsOrganise code into packages, import classes, compile multi-package projects and build a JAR. 13 min
- 21Exception handlingtry/catch/finally, the exception hierarchy, checked vs unchecked, throw, throws and multi-catch. 16 min
- 22Custom exceptions & try-with-resourcesDesign your own exceptions, chain causes, and close resources automatically with AutoCloseable. 14 min
- 23Wrapper classes & autoboxingInteger, Double and friends, parsing, autoboxing/unboxing, caching and null pitfalls. 11 min
- 24GenericsGeneric classes and methods, type parameters, bounded types, wildcards and type erasure. 17 min
- 25Collections & ListsThe Collections framework, ArrayList vs LinkedList, Iterator, removeIf, immutable lists and queues. 18 min
- 26Sets: HashSet & TreeSetUnique elements with HashSet, LinkedHashSet and TreeSet, set algebra and navigation. 13 min
- 27Maps: HashMap & TreeMapKey-value storage, iteration, getOrDefault, merge, computeIfAbsent, TreeMap and LinkedHashMap. 16 min
- 28Comparable vs ComparatorNatural ordering with compareTo, custom orderings with Comparator.comparing, thenComparing and reversed. 14 min
- 29equals() & hashCode()The equality contract, writing correct equals/hashCode, and why HashMap breaks without them. 14 min
- 30Lambdas, functional interfaces & method referencesLambda syntax, Function, Predicate, Consumer, Supplier, composing functions and the four kinds of method reference. 17 min
- 31The Streams APIBuild pipelines with filter, map, sorted and reduce, then collect with groupingBy, joining and more. 20 min
- 32OptionalRepresent maybe-missing values without null: map, filter, orElse, orElseThrow and good practice. 12 min
- 33Date & time API (java.time)LocalDate, LocalDateTime, ZonedDateTime, Instant, Duration, Period and formatting/parsing. 15 min
- 34File I/O with java.nioPath and Files: read, write, append, list and walk directories, and stream large files safely. 15 min
- 35Multithreading basicsThreads vs processes, Runnable, start vs run, sleep, join, interrupts and thread states. 15 min
- 36Synchronisation & thread safetyRace conditions, synchronized, volatile, atomics, locks, concurrent collections and deadlocks. 18 min
- 37ExecutorService & CompletableFutureThread pools, Callable and Future, shutting down cleanly, async pipelines and virtual-thread executors. 18 min
- 38JVM memory & garbage collectionStack vs heap, class loading, generations, G1/ZGC, memory leaks, heap flags and diagnostic tools. 15 min
- 39JDBC: connecting to MySQLConnector/J, DriverManager, PreparedStatement, ResultSet, CRUD, transactions and SQL-injection safety. 20 min
- 40Build tools: Maven & GradleProject layout, pom.xml and build.gradle.kts, dependencies, lifecycle, running tests and packaging. 16 min
- 41Unit testing with JUnit 5@Test, assertions, assertThrows, lifecycle hooks, parameterised tests and test-driven habits. 16 min
- 42Modern Java 17-21Sealed classes, pattern matching for instanceof and switch, record patterns, text blocks, virtual threads and more. 20 min
- 43Next step: intro to Spring BootWhat Spring Boot is, dependency injection, creating a project and building your first REST API. 16 min