Memra
academic · intermediate

COMP 308 — Java for Programmers

Advanced object-oriented Java, built for the exam

A full, exam-ready treatment of advanced Java: interfaces and inner classes, exceptions, collections and generics, reflection, I/O and serialization, enums and annotations, and concurrency — culminating in a worked Greenhouse control-system capstone. Read the concept, type the idiom, recall it cold.

Start course →
0 / 57 lessons

OOP Recap at COMP 308 Level

  1. Java objects & references (recap) 9 min
  2. Classes, constructors, static & initialization order 11 min
  3. Javadoc & coding standards (recap) 8 min

Reuse: Composition, Inheritance & Polymorphism

  1. Access control & packages 10 min
  2. Composition vs inheritance; extends & super 12 min
  3. Upcasting & the final keyword 10 min
  4. Polymorphism & dynamic method binding 12 min
  5. Polymorphism pitfalls & constructors 12 min
  6. Designing with inheritance; downcasting & RTTI preview 11 min

Interfaces & Inner Classes

  1. Abstract classes & methods 11 min
  2. Interfaces & complete decoupling 12 min
  3. Interfaces as factories; nesting interfaces 10 min
  4. Inner classes & the link to the outer object 12 min
  5. Anonymous inner classes & local classes 11 min
  6. Inner classes & control frameworks 12 min

Error Handling with Exceptions

  1. Exceptions: try, catch, throw 11 min
  2. Checked vs unchecked & the exception hierarchy 12 min
  3. finally, try-with-resources & multi-catch 12 min
  4. Chaining, rethrow, custom hierarchies & logging 11 min

Strings, Regex & Formatting

  1. Immutable Strings & StringBuilder 11 min
  2. String.format / printf & escape sequences 9 min
  3. Regular expressions: Pattern, Matcher & split 12 min
  4. Scanner for tokenized input 9 min

Arrays, Collections & Containers

  1. Arrays in depth 11 min
  2. The Collections framework map 10 min
  3. List, ArrayList, LinkedList & iteration 12 min
  4. Set & Map 11 min
  5. The equals() & hashCode() contract 12 min
  6. Queue, Deque, PriorityQueue & Comparable/Comparator 11 min

Generics

  1. Why generics & generic classes 11 min
  2. Generic methods & bounded type parameters 11 min
  3. Wildcards: ? extends / ? super (PECS) 12 min
  4. Type erasure & its consequences 11 min

Type Information: RTTI & Reflection

  1. RTTI: Class objects, getClass & class literals 11 min
  2. Reflection: Constructor, Method & Field 12 min
  3. Dynamic proxies (overview) 9 min

I/O, Serialization & Networking

  1. The I/O stream model 11 min
  2. Reading & writing text files 11 min
  3. File, Path & the filesystem 9 min
  4. Serialization & deserialization 12 min
  5. Networking basics (overview) 9 min

Enums & Annotations

  1. Enumerated types: type-safe constants 11 min
  2. Annotations: built-ins and defining your own 11 min
  3. Javadoc: doc comments to HTML API docs 9 min

Concurrency

  1. Threads: Runnable, Thread, and executors 11 min
  2. Shared state and synchronized 12 min
  3. volatile, atomics, and visibility 10 min
  4. Coordination: wait/notify, suspend/resume, interrupts 12 min
  5. Concurrent collections & higher-level tools 9 min

GUI Development with Swing

  1. Swing components & containers 11 min
  2. Event handling & listeners 11 min
  3. Menus, dialogs & shortcuts 10 min
  4. Swing + threading: the Event Dispatch Thread 12 min

Capstone: the Greenhouse Control System

  1. Architecture: Event / Controller / GreenhouseControls 12 min
  2. Part 1 recap: events, parsing, exceptions, serialize & restore 12 min
  3. Part 2 recap: reflection-built events & thread-safe concurrency 12 min
  4. Part 3 recap: the Swing control panel & a state machine 11 min
NORMAL ~/memra/learn/comp-308 utf-8 LF