Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Java 11 for Complete Beginners
Hello World
What is Java (5:45)
How Java Works (3:26)
Installing the JDK (3:19)
Installing Eclipse (8:47)
Creating a Class (8:35)
Running Your First Program (6:34)
The Structure of a Java Project (5:13)
A Closer Look at Hello World (6:15)
The Main Method (6:35)
Formatting and Code Blocks (5:10)
Auto-format (7:52)
Using Variables
Integer Variables (6:16)
Addition (9:01)
Outputting Variables and Text (6:58)
Doubles (4:05)
Arithmetic (6:41)
Variable Assignment (5:37)
Calculations (7:50)
Coding Tips (9:15)
How to Get the Most From This Course (7:24)
Converting Temperatures (6:37)
Strings and Text
Strings (3:41)
Joining Strings (6:00)
Control Characters (6:13)
Outputting a Menu (8:40)
Format Specifiers (9:16)
Format Specifiers Example (4:14)
User Input (9:17)
Stack Traces (6:42)
Eclipse Themes Tasks and Working Sets (9:07)
Loops and Conditions
While Loops (6:20)
Loop Conditions (7:48)
Some Comments on While (8:21)
Increment and Decrement (10:02)
PostfixAndPrefix (8:57)
Postfix and Prefix Expressions (9:32)
More While Loops (7:03)
For loops (8:50)
Boolean (5:25)
Equality (8:57)
If (4:10)
Using If (5:37)
If Else (6:40)
If Else If (9:10)
More If Else If (7:04)
One Line If (6:17)
Converting If Else to Switch (8:35)
Switch (7:51)
Switch Fallthrough (8:40)
The String Equals Method (8:03)
The Final Keyword (7:02)
Break (5:30)
Checking Passwords (5:56)
Password Loops (5:46)
Do While Loops (7:39)
Not (8:06)
Not Equal (8:49)
Variable Scope (8:06)
Checking Passwords with Do While (6:01)
Flags (8:22)
Limited Attemps (8:42)
String Methods (5:37)
Case Insensitivity Exercise (1:52)
Case Insensitivity Exercise Solution (8:19)
Stream Loops (5:45)
Arrays
Arrays (5:22)
Arrays of Strings (4:11)
Iterating Over Arrays (5:26)
Iterating with IntStream (5:47)
Primitive Arrays A Closer Look (7:50)
Primitive Arrays Exercise Solution (8:45)
For Each Loops (5:00)
Stream For Each Loops (7:33)
Primitive Arrays A Closer Look (5:39)
Non Primitive Arrays (8:44)
Multidimensional Arrays (8:14)
Working With Multidimensional Arrays (6:17)
Multidimensional Array Exercise (9:25)
Multidimensional Arrays Exercise Solution (5:54)
Multiplication Tables (10:19)
Methods
Classes and Objects (6:16)
Instance Variables (5:44)
Methods (6:41)
Accessing Instance Variables (4:13)
Menu Example (5:11)
Menu Example Implementation (7:38)
Return Values (6:47)
Menu Returning String (9:02)
Method Parameters (6:56)
Multiple Parameters (7:10)
Getters and Setters (9:40)
This (5:25)
Public and Private (5:12)
Window Example (4:11)
Window Example Implementation (6:57)
Constructors (7:09)
Constructors with Parameters (5:00)
toString (7:55)
Automatically Generating Classes (7:35)
Exercise: Hangman in Java
Hangman (4:32)
Top Down Design (5:22)
A RandomWord Class (7:13)
Random (9:34)
The char Type (10:00)
Char Arrays (7:54)
StringBuilder (8:59)
Using StringBuilder (3:06)
The Ternary Operator (9:40)
Using the Ternary Operator (5:47)
Filling in Characters (8:36)
Closing the Scanner (3:12)
Checking User Input (6:12)
Limited Tries (9:57)
Further Practice (6:31)
Booleans and Conditions
Boolean And (5:22)
Boolean Or (3:12)
Complex Boolean Conditions (6:16)
Static
Static and Final (6:12)
Static Variables (6:09)
Static Methods (5:27)
Assigning IDs (4:07)
Static Initialization Blocks (3:58)
Inheritance
Inheritance (6:14)
Overriding Methods (6:49)
The Override Annotation (4:14)
Subtype Polymorphism (5:52)
Casting and Runtime Errors (7:23)
Protected (9:14)
Final Classes (1:35)
The Garbage Collector (4:02)
Exercise: Rock, Paper, Scissors
Rock Paper Scissors (2:42)
A Game Object (4:48)
Game Objects (5:33)
Naming Objects (7:47)
Choosing Objects (1:58)
Comparing Objects (7:49)
CompareTo (6:44)
The Comparable Interface (5:10)
UserPicksAnObject (9:09)
WinDrawLose (5:29)
GameLoop (2:44)
Accouncing the Winner (4:23)
Some Comments on Rock Paper Scissors (4:35)
Overloading Methods and Constructors
Method Overloading (10:56)
Default Constructors (6:23)
Constructor Chaining (7:40)
Super (8:07)
Swing and JavaFX (6:10)
Exercise: A Swing Desktop Program
Hello World Swing (4:36)
SwingUtilities (4:39)
Swing Custom Components (7:49)
Panels and Layouts (3:56)
Toolbars (4:05)
About Swing (2:46)
Interfaces
Packages (8:48)
AccessModifiers (8:14)
The API Docs (4:59)
Main Methods (8:28)
Upcasting (6:29)
Downcasting (7:18)
Object (7:17)
Abstract Classes (9:06)
Interfaces (11:45)
Interface Inheritance (5:45)
Interface Default Methods (5:14)
Multiple Inheritance (8:27)
Abstract Class Example (6:36)
Interface Example (7:24)
Combining Code Exercise (3:24)
An Egg Timer (7:08)
Swing: Handling Button Clicks
About Interfaces (4:17)
Starting Point and GitHub (2:20)
Button Clicks (7:33)
Changing Color (6:27)
Naive App Control (7:14)
About References (5:10)
Naive App Control Review (4:47)
Color Button Listener (3:52)
Whats Wrong With Our Swing App (2:08)
Decoupling Using Interfaces (8:07)
Inner Classes
HashCode and This (9:29)
Local Inner Classes (5:29)
Local Inner Classes Example (7:31)
Effectively Final (3:46)
Static Inner Classes (6:57)
Non-static Inner Classes (8:13)
Anonymous Classes (8:25)
Inner Class Review (8:43)
Swing: Handling Button Clicks with Inner Classes
Handling Button Clicks With Inner Classes (8:28)
Handling Button Clicks With Lambda Expressions (6:05)
Enumerationns
Enum (7:45)
Enum Useful Methods (6:25)
Enum Constructors (6:41)
Enum and Switch (2:43)
Enum Exercise (2:11)
Enum Exercise Solution (5:24)
Improving Rock Paper Scissors (9:54)
Implementing the Beats Method (3:04)
Using Beats (3:30)
Eliminating Unecessary Code (7:23)
Exceptions
IntroducingExceptions (4:33)
Try Catch (8:52)
Some Exception Exercises (9:34)
Throwing Exceptions (6:45)
The Call Stack (8:33)
Throwing Runtime Exceptions (5:19)
Custom Exceptions (9:26)
Handling Multiple Exceptions (8:25)
Catching Multiple Exceptions (8:26)
Exception Flow Control (9:31)
NullPointerException (5:25)
AutoCloseable (7:12)
Constructor Exceptions and Close (8:19)
HandlingConstructorAndCloseExceptions (6:35)
TryWithResources (6:10)
TryWithResourcesExample (5:51)
More Basic Types
Integer Types (5:46)
MinimumAndMaximumValues (8:45)
Floating Point Types (6:54)
Class Equivalents of Primitive Types (8:37)
Widening and Narrowing Conversions (6:15)
Numeric Literals (8:20)
The Mod Operator (10:00)
Exercise: Conway's Game of Life in Swing
Introducing the Game of Life (4:24)
Basic Swing App Again (5:32)
Painting and Drawing (9:13)
About the Grid (5:03)
Calculating Margins (7:00)
Drawing the Grid (8:10)
Numeric Class Methods (11:25)
Filling Cells (9:05)
Front End vs Back End (3:15)
The Model (6:20)
Displaying the Model (8:36)
Handling Mouse Clicks (8:42)
Converting Mouse Coordinates (8:11)
Handling Key Presses (7:14)
Randomizing the Grid (6:17)
Clearing the Grid (5:44)
Iterating Over Cells (6:31)
Counting Neighbours (11:14)
Life and Death (4:00)
Implementing the Game of Life Algorithm (5:31)
Fixing Resize (2:54)
Game of Life Conclusion (5:26)
Reading and Writing Files
The File Class (5:01)
Reading and Writing Text Files (8:55)
File Locations (4:24)
Reading Text Files Line By Line (10:27)
Writing Text Files Line By Line (7:36)
Serializing Objects (8:04)
Deserializing Objects (6:26)
Transient (1:59)
Serial Version UIDs (9:48)
Serializing Multiple Objects (6:06)
Writing Binary Files (9:34)
Reading Binary Files (6:36)
Reading Java Class Files (11:47)
Endianness (8:26)
File Parsing Exercise (8:22)
File Parsing Exercise Solution (10:32)
Exercise: Implementing Save and Load
Swing Menus (6:12)
Save Dialogs (3:57)
Getting the Selected File (5:41)
Saving the Grid (8:29)
File Open Dialogs (3:47)
Loading Files (7:51)
Error and Warning Messages (11:10)
Saving and Loading Conclusion (3:39)
Generics
A Simple Hierarchy (6:09)
A Wrapper Class (5:23)
Introducing Generics (6:40)
Type Erasure (6:49)
A Pair Class (7:59)
An Array Class (11:33)
Generic Methods (6:43)
Generic Bounds (10:22)
Super and PECS I (6:35)
Super and PECS 2 (6:08)
Util Copy Exercise (7:56)
Add All Exercise (9:35)
The Java Collections API
ArrayList (4:08)
Iterating through ArrayList (6:51)
Custom Objects in ArrayLists (5:27)
Sorting Lists (3:23)
Implementing Comparable (4:07)
How Comparable Works (5:08)
Comparable Example (7:51)
Comparators (11:01)
ArrayList Exercise (11:41)
LinkedList (7:29)
The List Interface (7:55)
Initializing Lists With Lists (6:24)
Static Methods in Interfaces (2:32)
Variable Arguments (6:00)
Timing List Operations Exercise (5:49)
Timing List Operations Solution (9:10)
Time Complexity (10:41)
Instanceof (6:22)
Equals (11:03)
Removing Items From Lists (8:07)
ConcurrentModificationException (3:01)
Iterators (5:36)
Getting Creative With Iterators (3:09)
Modifying Lists While Iterating (5:46)
Ring Buffer Exercise (4:45)
Ring Buffer Solution (8:22)
Implementing Iterable (7:49)
Circular Iterator Exercise (4:06)
Circular Iterator Solution (6:31)
ForEachAndIterators (1:47)
HashSet (8:00)
Hashing Algorithms (3:51)
The hashCode Method (6:33)
UnionAndIntersection (7:29)
RemoveAll (1:58)
LinkedHashSet (4:52)
TreeSet (8:49)
Set and SortedSet (3:28)
Collections Review (6:56)
Sets And Lists Exercise (10:42)
Sets And Lists Solution 1 (8:35)
Sets and Lists Solution 2 (10:39)
Sets And Lists Solution 3 (8:54)
HashMaps (9:37)
Static Imports (4:07)
Initializing Maps (8:52)
Iterating Through Maps (9:03)
Ordered Maps (5:15)
Custom Objects in Maps Exercise (2:49)
Custom Objects in Maps Solution (13:24)
Lists of Sets (10:45)
MapsOfLists (9:27)
Complex Data Structures (5:26)
CollectionsAndInheritance (8:57)
MIDI Exercise
Playing a Note (10:31)
Playing Chords (11:36)
MidiExerciseSolution (13:13)
Collections Exercise: A Rota
Collections Rota Exercise (12:19)
PersonClass (8:55)
LoadingTheData (7:00)
Rota Class (8:22)
Implementing the Rota (7:15)
Vital Skill Set (5:23)
Rota Algorithm (10:02)
TestingTheRotaAlgorithm (8:28)
Exercise Conclusion (3:54)
Adding People (5:25)
Custom Objects in Maps Exercise (2:49)
Custom Objects in Maps Solution (13:24)
Lambda Expressions
Lambda Expression Example (6:22)
Functional Interfaces (5:48)
A Lambda Expression From Scratch (7:16)
Lambda Expressions With Single Parameters (7:49)
Multiple Parameter Lambdas (6:37)
Return Values in Lambdas (6:06)
LambdasAndCapture (5:19)
Functional Programming (4:44)
Unmodifiable Lists (8:15)
Predicates (9:39)
Filtering Lists (8:26)
Function (9:27)
ReplaceAll (7:00)
LambdaExercise (4:20)
Multithreading (11:04)
Incrementing via Threads (5:21)
Synchronized (7:28)
Lambda Expressions Summary (1:15)
Method References
Method References (8:24)
Breaking Down Method References (4:54)
Method Reference Examples (7:03)
References to Methods of Particular Objects (4:25)
References to Methods of Arbitary Objects (10:47)
Compare To Method Reference (9:51)
References to Constructors (9:57)
Streams
Streams (5:11)
Generating Streams (5:10)
Generating Streams from Files (5:26)
Transforming Streams (6:59)
Regular Expressions (9:15)
Collectors (6:08)
Peek (5:00)
FlatMap (4:07)
Stream Exercise 1 (8:43)
Reduce (7:28)
Combiners (7:08)
Stream Exercise 2 (4:53)
Implementing Collectors (7:27)
Streams Exercise 3 (1:18)
Combining Maps (6:59)
Implementing the Solution (7:13)
Filter (7:42)
Map Exercise (7:19)
Sorting Streams (11:56)
Group By (8:09)
Streams and Static Imports (2:47)
Streams Conclusion Almost (2:07)
Stream Exercise 4 (1:52)
Multiplication Table With ForEach (3:12)
Stream Multiplication in a Single String (6:25)
Jar Files
Jar Files (3:44)
Creating and Using a Jar File (6:27)
About Jar Files (4:21)
Runnable Jars (8:28)
Bitwise Operators
Numbering Systems (9:26)
Formatting Binary Numbers (3:37)
Bitwise And Or (5:43)
Bitwise Exclusive Or and Not (5:19)
Bitwise Shift (7:38)
Bitwise Hexadecimal (9:14)
Bitwise Exercise Solution (6:27)
Cellular Automata
Hello Again Swing (10:06)
Setting Pixels (4:06)
Wolfram Code (6:52)
Using the Wolfram Code (9:14)
Getting Colors (8:58)
Forming the Index (5:11)
Implementing the Rule (2:40)
About the Wolfram Codes (9:05)
Modules
About Modules (1:29)
Creating a Module (7:43)
Using Modules (8:20)
Debugging
Using the Debugger (7:51)
Conditional and Exception Breakpoints (11:16)
Recursion
Factorial Exercise (1:19)
Factorial Solution (2:53)
Recursion (6:44)
Using Recursion (4:54)
Recursive Factorial Solution (7:45)
Conclusion
Course Conclusion (3:57)
Teach online with
Serializing Multiple Objects
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock