- Introduction
- 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
- 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
- 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 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: 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: 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