You, Us & This Course
  • Introduction
Coding Is Like Cooking
  • Coding is like Cooking
  • Functions as Food Processors
  • Installing Java and Setting up an IDE
  • Variables - Primitives, Objects, Null
  • Hello World! (Drill)
  • Don't Jump Through Hoops, Use Loops
  • Arrays and Lists - Drill
  • Maps
  • Maps - Drill
  • Lists
  • Arrays
An Object-Oriented State of Mind
  • The Evolutionary Arc from C, through C++, to Java
  • Java Introduction
  • Objects are like puppies
  • Classes and Objects: An Object-Oriented State of Mind
  • Static Variables and Methods
  • Access Modifiers
  • Java keywords
  • Classes and Objects: A Simple Example I
  • Classes and Objects: A Simple Example II
  • Is-A Inheritance - setting up a class hierarchy
  • Is-A Inheritance - parent class, child class relationship
  • Runtime Polymorphism
  • The Object Base Class
  • Interfaces : Introduction
  • Interfaces vs Abstract Base Class
  • Interfaces
  • Interfaces and Abstract Base Classes
  • Inheritance
  • Interfaces In Detail
  • Interface Default Methods: Avoid Backward Compatibility Nightmares
  • Interfaces and Inheritance in Action
  • Classes and Objects
  • Classes and Objects
  • Functions
  • Output of functions
  • Inheritance
Java Language Constructs: The Best Thing Since Sliced Bread
  • Exceptions
  • Object Identity: == and .equals()
  • Generics: Type Safety and Code Re-use
  • Collections: Containers for all purposes
  • Generic Containers - much cooler
  • Ordered Associative Containers - The Tree Map
  • Inner Classes: Horses for Courses - Static vs Non-Static
  • Inner Classes: Horses for Courses - Anonymous and Local
  • Generic classes
  • Static and non-static nested classes
  • Static nested classes
  • A File is like a Barrel
  • A Serious Java Application: Our First
  • A Serious Java Application: Parsing Stock Ticker Data - I
  • A Serious Java Application: Parsing Stock Ticker Data - II
  • A Serious Java Application: Parsing Stock Ticker Data - III
  • A Serious Java Application: Parsing Stock Ticker Data - IV
  • A Serious Java Application: Parsing Stock Ticker Data - V
  • Files
Threading and Concurrency: A Lot Going On All At Once
  • Threading, and Why It Matters
  • Threading: Old school vs New school
  • Traditional Threading Support
  • Threading and Concurrency: A lot going on at once
  • Synchronized Methods, Livelock, Deadlock and Starvation
  • Working with threads - and our first synchronization bug!
  • Threads: Object locking and static variables in action
  • Digging Deeper into Callables and Futures
  • Threading: New school fun in action
  • Threading: Executors are pretty cool
  • Threading
  • Threading
  • Threading
  • New-school Threading
  • New-school Threading
Functional Programming: Crossover Hits
  • Functional Programming: A State of Mind
  • Lambda Functions: A Crossover Hit
  • Lambda Functions: No more boiler-plate code
  • Lambda functions for real - in code
  • Lambdas
  • Lambda Functions
Recursion, Reflection, Annotations, Dates, Packages and Jars
  • Recursion
  • Reflection: Not a Dark Art
  • Reflection: A real use case
  • Type Introspection
  • Annotations: Notes to Self can be Super-Useful
  • Question 24 - Annotation
  • Working With Dates in Java
  • Jars: Not As Boring as They Might Seem
  • Packages
  • Packages and Jars in Action
  • Compiling and building Java code
  • Serialisation
  • Cloning
  • The Immutability of Strings
UI Programming: Swing, MVC, and JavaFX