Java Fundamentals (for Java 8, 11 and 17)

Try for free!

Subscribe and stream all our courses
from just $19.00 per month
Start my free trial

Java Fundamentals (for Java 8, 11 and 17)

Java 8 Java 11 Java 17

Get a solid foundation in the fundamentals of Java programming

Contains around 14.5 hours of video - including exercises this should take around 5 to 7 days to complete.

  • To coincide with the release of Java 17 we have completely revised and updated our Java Fundamentals course.
  • This version is suitable for anyone using versions 8, 11 or 17 of Java, and is tailored to both the Intellij Idea and Eclipse IDEs.
  • Covers the major aspects of java syntax, object oriented programming, unit testing with JUnit and working with databases.
  • Most of the course and learning is focused around building a real-world example application.
You do not need any previous Java knowledge or experience to take this course. We cover everything right from the start - including how to install Java and the Java Development Kit.


Having problems? check the errata


Course Introduction 5m 43s Preview

Getting started

What is Java? 7m 34s Preview
Where do we get it? 4m 9s Preview
What verison do you get? 6m 37s Preview
The Hello World program 7m 18s Watch

Installing an IDE

Installing Intellij Idea 13m 5s Watch
Installing Eclipse 7m 51s Watch
Key features of the IDE 9m 31s Watch


Primative data types 14m 11s Watch
Basic arithmetic 12m 11s Watch
Booleans, chars and arrays 6m 50s Watch

Control flow

For loops 9m 1s Watch
While loops 6m 50s Watch
If and switch 9m 11s Watch
Logical Operators (AND and OR) 4m 34s Watch


Introducing the String 10m 27s Watch
Comparing strings 2m 32s Watch
The ternary operator 8m 28s Preview
Concatenation and interpolation 6m 16s Watch

Code structure part 1

Defining methods 6m 5s Watch
Using methods 12m 5s Watch
Variable scope 6m 59s Watch
Introducing classes 9m 58s Watch

Working with classes

The purpose of classes 6m 22s Watch
Getter and setter methods 9m 24s Watch
Constructors 4m 17s Watch
Method overloading 4m 3s Watch
Class design and record classes 6m 1s Watch
Wrapper classes for primatives 3m 27s Watch

Practical exercise 1

Instructions 1m 15s Watch
Solution walkthrough 8m 36s Watch

Arrays of Objects

Using arrays 5m 21s Watch
The meaning of null 3m 55s Watch
Looping through arrays 5m 15s Watch
Creating wrapper classes 14m 1s Watch

Code structure part 2

Packages 12m 54s Watch
Importing from the Java libraries 4m 31s Watch
The Javadocs 3m 36s Watch

Time and money

The history of dates and times 9m 36s Watch
Working with dates and times 9m 30s Watch
Using precision decimals 7m 33s Watch

Object Orientation part 1

Introducing object orientation 6m 1s Watch
Inheriting a class 7m 44s Watch
Using constructors 7m 28s Watch
Overriding methods 10m 23s Watch
Abstract and sealed classes 8m 2s Watch

Important methods to override

Creating a toString method 6m 27s Watch
Object equality and the equals mehtod 11m 28s Watch
Hashcodes 2m 26s Watch
Practice exercise 3m 30s Watch


Using enums 8m 57s Watch
Practice exercise 2m 23s Watch

Console Input And Output

Reading input from the console 5m 48s Watch
Using the scanner 4m 16s Watch
Practice exercise 14m 52s Watch


Introducing exceptions and reading stack traces 10m 4s Watch
Throwing exceptions 4m 54s Watch
Checked and Unchecked exceptions and try-catch blocks 12m 53s Watch
Creating custom exceptions 5m 8s Watch
Practice exercise 7m 21s Watch

Practical exercise 2

Instructions 1m 22s Watch
Solution demonstration 2m 8s Watch
Solution walkthrough 32m 18s Watch

Collections part 1

Introducing arraylists 8m 0s Watch
Generic types 3m 42s Watch
Retrieving data and looping 6m 21s Watch
Hashsets 2m 41s Watch
Practice exercise2 7m 59s Watch

Object Oriented Programming part 2

Intro to polymorphism 8m 42s Watch
Using polymorphism 7m 20s Watch
Practice exercise3 11m 27s Watch

Object Oriented Programming part 3

What is an interface? 5m 33s Watch
Creating an interface 8m 36s Watch
Implementing an interface 7m 18s Watch
Interfaces in the Java libraries 6m 21s Watch
Default and static methods 5m 34s Watch
Practice exercise4 15m 39s Watch

Collections part 2

Sorting lists 17m 29s Watch
Maps 10m 47s Watch
Practice exercise 5m 48s Watch

Garbage collection

How memory is managed in Java 5m 0s Watch
The StringBuilder class 5m 28s Watch

Practical exercise 3

Instructions 1m 37s Watch
Solution demonstration 2m 52s Watch
Solution walkthrough 19m 20s Watch

Lambda syntax

Anonymous inner classes 12m 48s Watch
Lambda syntax 8m 2s Watch
Using streams 8m 12s Watch
Practical exercise 6m 1s Watch


Creating a jar file 5m 12s Watch
Running a jar file 2m 25s Watch
The jpackage tool 0m 56s Watch

Unit testing

Introduction to Unit testing 10m 49s Watch
Exploring asssertions 8m 53s Watch

Using external libraries and build tools

Using external libraries 12m 53s Watch
Introducing Maven 5m 20s Watch
Getting project dependencies with Maven 11m 3s Watch
Building a Jar file with Maven 3m 26s Watch

Using databases

What is a relational database? 2m 49s Watch
Introducing JDBC 16m 30s Watch
Mapping database tables with objects 18m 47s Watch
Practice Exercise 27m 20s Watch

Reading and writing files

Referencing files and paths 20m 20s Watch
Using the FileWriter and FileReader 13m 54s Watch
Using the File and Path objects 10m 52s Watch
Practice Exercise 6m 37s Watch


Course Summary and next steps 1m 20s Watch
Copyright ©2024