This site is powered by
course builder. Create your online course today.
Start now
Create your course
with
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)
Implementing the Rule
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock