Memra

programming · beginner · ≈ 15 h · Athabasca University

Java from Zero

Zero to hire-ready — and OCP-exam ready

A complete Java curriculum: 107 lessons across 21 modules, from your first class through OOP, generics, collections, lambdas and streams, exceptions, concurrency, I/O, modules, JDBC and the practical idioms a junior developer is expected to know. Aligned to the OCP Java SE 17 Developer (1Z0-829) objectives. Read a little, type the code, retrieve it cold — spaced by FSRS.

0 / 107 lessons
Reviews stop being scheduled for after it.

up next

What Java is: JDK, JVM & bytecode

8 m

Start course

Getting Started

0 / 3 lessons
  1. What Java is: JDK, JVM & bytecode 8 m
  2. Your first class and the main method 9 m
  3. Compile and run 7 m

Variables, Types & Operators

0 / 7 lessons
  1. Primitive types & literals 10 m
  2. Variables, assignment & var 8 m
  3. Operators & precedence 10 m
  4. Casting & numeric promotion 9 m
  5. Strings, immutability & text blocks 10 m
  6. StringBuilder: efficient text assembly 7 m
  7. Wrapper classes, autoboxing & parsing 8 m

Control Flow

0 / 5 lessons
  1. if / else if / else 7 m
  2. The switch statement 8 m
  3. Switch expressions & pattern matching 9 m
  4. Loops: while, do-while, for, for-each 9 m
  5. break, continue & labels 7 m

Arrays

0 / 5 lessons
  1. Declaring, instantiating & initializing arrays 8 m
  2. Accessing & iterating: indexes, .length, and bounds 8 m
  3. Multidimensional & jagged arrays 7 m
  4. The Arrays utility class 8 m
  5. Varargs 7 m

Methods & Encapsulation

0 / 5 lessons
  1. Defining & calling methods 7 m
  2. Method overloading & overload resolution 8 m
  3. Static vs instance: fields and methods 8 m
  4. Pass-by-value: the most-misunderstood Java rule 9 m
  5. Access modifiers & encapsulation 9 m

Classes & Objects

0 / 5 lessons
  1. Classes, objects, new & constructors 8 m
  2. Constructor overloading & this() 8 m
  3. Initialization order: static, instance, and constructor 9 m
  4. final fields, final variables & immutability 8 m
  5. Object: the root of every class 8 m

Inheritance & Polymorphism

0 / 6 lessons
  1. extends, super() & constructor chaining 9 m
  2. Overriding vs hiding: @Override, covariant returns & access rules 9 m
  3. Polymorphism & dynamic dispatch 9 m
  4. Casting, instanceof & pattern matching 8 m
  5. abstract classes & methods — and final 8 m
  6. equals, hashCode & toString done right 10 m

Interfaces

0 / 5 lessons
  1. Declaring & implementing interfaces 8 m
  2. default, static & private interface methods 9 m
  3. The diamond problem with default methods 8 m
  4. Functional interfaces & @FunctionalInterface 7 m
  5. Comparable<T> vs Comparator<T> 9 m

Enums, Records, Sealed & Nested Types

0 / 4 lessons
  1. Enums: constants, fields, constructors & switch 9 m
  2. Records (Java 16+) 8 m
  3. Sealed classes & interfaces (Java 17) 8 m
  4. Nested types: static nested, inner, local & anonymous 9 m

Generics

0 / 6 lessons
  1. Why generics: type safety and the diamond operator 7 m
  2. Generic classes: type parameters and conventions 8 m
  3. Generic methods: declaring and calling 7 m
  4. Bounded type parameters: extends and multiple bounds 8 m
  5. Wildcards and PECS: producer-extends, consumer-super 9 m
  6. Type erasure: generics at runtime 8 m

Collections

0 / 6 lessons
  1. Framework overview: Collection vs Map 7 m
  2. List: ArrayList vs LinkedList 8 m
  3. Set: HashSet, LinkedHashSet, TreeSet 8 m
  4. Map: HashMap, LinkedHashMap, TreeMap and key operations 9 m
  5. Queue and Deque: ArrayDeque as stack and queue 7 m
  6. Sorting, choosing the right structure, and fail-fast iterators 9 m

Lambdas & Streams

0 / 7 lessons
  1. Lambda syntax & effectively-final capture 9 m
  2. Built-in functional interfaces (java.util.function) 9 m
  3. Method references: the four kinds 8 m
  4. Optional<T>: a container for absent values 8 m
  5. Stream basics: source → intermediate → terminal 9 m
  6. Terminal ops & Collectors 10 m
  7. Primitive streams: IntStream, LongStream, DoubleStream 8 m

Exceptions

0 / 5 lessons
  1. The Throwable hierarchy: checked vs unchecked 8 m
  2. throw vs throws: raising and declaring 8 m
  3. Multi-catch & catch order 7 m
  4. try-with-resources & AutoCloseable 9 m
  5. Custom exceptions & common built-ins 9 m

Dates, Numbers & Localization

0 / 5 lessons
  1. LocalDate, LocalTime & LocalDateTime 9 m
  2. Instant, Duration, Period & ZonedDateTime 9 m
  3. Formatting & parsing with DateTimeFormatter 8 m
  4. BigDecimal & BigInteger — exact arithmetic 9 m
  5. Locale, NumberFormat & resource bundles 8 m

I/O & NIO.2

0 / 5 lessons
  1. Byte streams vs character streams 8 m
  2. Reading & writing text with try-with-resources 8 m
  3. NIO.2: Path & Files 9 m
  4. Directory traversal with Files.list and Files.walk 7 m
  5. Serialization: Serializable, ObjectStreams & serialVersionUID 7 m

Concurrency

0 / 5 lessons
  1. Threads & Runnable 9 m
  2. Callable, Future & ExecutorService 9 m
  3. Thread safety: synchronized, volatile & atomic 10 m
  4. Concurrent collections & CompletableFuture 9 m
  5. Deadlock, livelock & safe design strategies 8 m

The Module System (JPMS)

0 / 4 lessons
  1. Why modules: strong encapsulation & reliable configuration 8 m
  2. requires, exports, and qualified exports 9 m
  3. provides/uses (ServiceLoader) and opens for reflection 8 m
  4. Building & running modular apps 9 m

JDBC

0 / 4 lessons
  1. JDBC architecture: drivers, connections & the four core interfaces 8 m
  2. Querying with PreparedStatement and ResultSet 9 m
  3. executeUpdate, INSERT/UPDATE/DELETE & SQL injection 8 m
  4. Resource management & transactions 9 m

Annotations & Reflection

0 / 4 lessons
  1. Built-in annotations: @Override, @Deprecated, @SuppressWarnings and friends 7 m
  2. Declaring custom annotations 8 m
  3. Meta-annotations: @Retention, @Target, @Documented, @Inherited, @Repeatable 9 m
  4. Reflection basics: Class<?>, getDeclaredFields, and reading annotations at runtime 9 m

Practical Java for the Job

0 / 6 lessons
  1. equals & hashCode done right 9 m
  2. Immutability & defensive copies 8 m
  3. Static factories & the Builder pattern 9 m
  4. Project structure & build tools 7 m
  5. Testing with JUnit 5 8 m
  6. Logging, design patterns & debugging 9 m

Exam Readiness & Capstone

0 / 5 lessons
  1. Gotcha roundup I — values & flow 9 m
  2. Gotcha roundup II — types & objects 9 m
  3. Gotcha roundup III — APIs 9 m
  4. Exam strategy 7 m
  5. Capstone: a small Java program, end to end 10 m
~/memra/learn/java-from-zero