There are currently no items in your shopping cart.

User Panel

Forgot your password?.

Complete Java Masterclass

Video Introducing this tutorial

Introduction :
Getting Started With This Course

Setup :
How to Use This Section Of The Course
How To Install The Java Development Kit (JDK) For Windows
Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available
Download and Install IntelliJ (FREE and PAID version) for Windows
Configuring IntelliJ for Java on Windows
How To Install The Java Development Kit (JDK) For Mac OS X
Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available
Download and Install IntelliJ (FREE and PAID version) on a Mac
Configuring IntelliJ for Java on a Mac
How To Install The Java Development Kit (JDK) For Ubuntu Linux
Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available
Install and Configure IntelliJ (FREE and PAID version) for Ubuntu Linux

First Steps :
Creating Your First Java Project
Exploring The IntelliJ Interface

Variables, Datatypes and Operators :
What Are Variables?
Getting To Know Primitive Data Types - The Byte, Short, Int And Long
Getting To Know Primitive Data Types - Float And Double
Getting To Know Primitive Data Types - Char And Boolean
Understanding Strings And Finishing Up Primitive Data Types
Operators In Java
More On Operators And Operator Precedence

Java Tutorial: Expressions, Statements, Code blocks, Methods and more :
Keywords And Expressions
Statements, Whitespace and Intentation (Code Organization)
Code Blocks And The If Then Else Control Statements
Methods In Java
More On Methods And A Challenge
Method Overloading

Control Flow Statements :
The switch statement (+Challenge Exercise)
The for Statement (+Challenge Exercise)
The while and do while statements (+Challenge Exercise)

OOP Part 1 - Classes, Constructors and Inheritance :
Classes Part 1
Classes Part 2
Constructors - Part 1 (+Challenge Exercise)
Constructors - Part 2 (+Challenge Exercise)
Inheritance - Part 1
Inheritance - Part 2
Inheritance Challenge Part 1 (+Challenge Exercise)
Inheritance Challenge Part 2

OOP Part 2 - Composition, Encapsulation, and Polymorphism :
Composition Part 2 (+Challenge Exercise)
Encapsulation (+Challenge Exercise)
Polymorphism (+Challenge Exercise)
OOP Master Challenge Exercise
OOP Challenge - Solution

Arrays, Java inbuilt Lists, Autoboxing and Unboxing :
Arrays (Challenge Exercise)
List and ArrayList Part 1
ArrayList Part 2
ArrayList Part 3
ArrayList Challenge Part 1
ArrayList Challenge Part 2
ArrayList Challenge Part 3
Autoboxing and Unboxing
Autoboxing & Unboxing (Challenge Exercise) - Part 1
Autoboxing & Unboxing (Challenge Exercise) - Part 2
Autoboxing & Unboxing (Challenge Exercise) - Part 3
LinkedList Part 1
LinkedList Part 2
LinkedList Part 3
LinkedList Challenge Part 1
LinkedList Challenge Part 2
LinkedList Challenge Part 3 (Final video)

Inner and Abstract Classes & Interfaces :
Interfaces Part 2
Interfaces Challenge Part 1
Interfaces Challenge Part 2
Inner classes Part 1
Inner Classes Part 2
Inner Classes Challenge
Abstract Classes Part 1
Abstract Classes Part 2
Abstract Class Challenge Part 1
Abstract Class Challenge Part 2
Abstract Class Challenge Part 3

Java Generics :
Generics Introduction
Our Generics Class
Our Generics Class Part 2
Our Generics Class Part 3
Generics Challenge

Naming Conventions and Packages. static and final keywords :
Naming Conventions
Packages Part 2
Packages Part 3
Packages (Challenge Exercise)
Scope Part 2 and Visibility
Scope +(Challenge Exercise)
Access Modifiers
The static statement
The final statement
Final Part 2 and Static Initializers

Java Collections :
Collections Overview
Binary Search
Collections List Methods
Comparable and Comparator
Map Continued and Adventure Game
Adding Exits to the Adventure game
Adventure Game challenge
Immutable Classes
Immutable Class Challenge
Sets & HashSet
HashSet - equals() and hashCode()
Finish off equals() and hashcode()
Potential issue with equals() and sub-classing
Sets - Symmetric & Asymmetric
Finishing Off Sets
Sets Challenge Part 1
Sets Challenge Part 2
Sets Challenge Part 3
Sorted Collections
StockList Class With Maps
Add a Basket
TreeMap and Unmodifiable Maps
Challenge Part 1
Challenge Part 2
Challenge Part 3
Challenge Part 4 (Final)

JavaFX :
Code Vs FXml
GridPane Layout
HBox Layout
BorderPane Layout
Other Layouts
RadioButton and CheckBox
ComboBox and ChoiceBox
Slider, Spinner, ColorPicker & DatePicker Controls
Events and Event Handlers
Events Continued
UI Thread
Threads and Runnable
Setup Sample Todo List Application
Base Interface
Add Change Listener
Formatting Dates
Load and Save ToDo Items from/to Disk
Add DialogPane
Show Dialog and Add Controller Code
Bug Fix and Update List View
Data Binding and Observable
Cell Factories
Context Menu
KeyEvents and Toolbars
CSS With JavaFX
Transforming Nodes and Choosers
More on Choosers and Web Pages
Installing SceneBuilder for Windows
Installing SceneBuilder for Mac
Overview of SceneBuilder
Building a UI with SceneBuilder
More on SceneBuilder
JavaFX Challenge
JavaFX Challenge Part 2
JavaFX Challenge Part 3
JavaFX Challenge Part 4
JavaFX Challenge Wrap up

Basic Input & Output including java.util :
Stack Trace and Call Stack
Catching and throwing Exceptions
Multi Catch Exceptions
Introduction to I/O
Writing content - FileWriter class and Finally block
Try with Resources
FileReader and Closeable
Load Big Location and Exits Files
Buffered Writer and Challenge
Byte Streams
Reading Binary Data and End of File Exceptions
Object Input Output
Finish Object I/O and RandomAccessFile class
Create Random Access File
Update Static Initializer Block With Random File Access
Update Adventure Game to Read Random Access File
Java NIO
Writing Objects With Java NIO
Reading and Writing with Java NIO
Writing Binary Files with Java NIO
Reading Files with NIO
Absolute and Relative Reads
Chained Put Methods
Writing Sequentially
FileChannel to Copy Files and Pipes with Threads
More on Paths
Exists and CopyFile
Move, Rename and Delete
File Attributes

Concurrency in Java :
Concurrency and Threads Introduction
Runnable and Thread
Interrupt and Join
Multiple Threads
Thread Variables
Producer and Consumer
Deadlocks, wait, notify and notifyAll methods
The Java Util Concurrent package
Thread Interference
Reentrant Lock and Unlock
Using Try Finally With Threads
Thread Pools
ArrayBlockingQueue Class
More on Deadlocks
Thread Starvation
Fair Locks and Live Locks
Live Lock Example and Slipped Conditions
Other Thread Issues
JavaFX Background Tasks
Data Binding
Challenge 1 and 2
Challenge 3,4 and 5
Challenge 6 and 7
Challenge 8
Challenge 9

Lambda Expressions :
Lambda Expressions Introduction
Lambda Expressions Continued
Lambda Expressions Nested Blocks
Scope and Functional Programming
Functional Interfaces & Predicates
More on Predicates & Suppliers
Chaining java.util.function Functions
Streams - Intermediate and Terminal Operations
Streams - Flatmap & Lambda Best Practices
Lambda Challenge Part 1
Lambda Challenge Part 2

Regular Expressions :
Regular Expressions Introduction
Character classes and Boundary Matchers
Quantifiers and the Pattern and Matcher classes
Matcher find and Group Methods
And, Or & Not
Regular Expressions Challenge Part 1
Regular Expressions Challenge Part 2
Regular Expressions Challenge Part 3

Debugging and Unit Testing :
Introduction to Debugging
More on Debugging
Field Watch Points
Advanced Debugging
Introduction to Unit Testing with JUnit
Asserts in Junit
More Asserts and Exception Handling
Parameterized Testing
JUnit Challenge #1 and #2
JUnit Challenges #3 to #7
Junit Challenges #8 to #10

Databases :
Section Introduction
Database Terminology
Install and Setup SQLite for Windows
Install and Setup SQLite for Mac
Install and Setup SQLite for Linux
Introduction to SQLite
More with SQLite
Querying Data With SQL
SQL Order by and Joins
More Complex Joins
Wildcards in Queries and Views
Housekeeping and Final SQL Challenge
JDBC and SQLite GUI Browser
Creating Databases With JDBC in Java
JDBC Insert, Update, Delete
.executeQuery() and using Constants
The Music SQLite Database
Write Java Query for Artists
Executing SQL in DB Browser
Query Albums by Artist Method
Query Artists for Song method
Result Set Meta Data
Functions and Views
Write the Method to Query View
SQL Injection Attacks and Prepared Statements
Inserting Records With JDBC
Insert Albums, Artists, and Songs
Test Insert JDBC Code
JDBC with a GUI Program
Add Artists
Fix Artist and Preload Records
Implement Artist Query
Add ProgressBar
Handling Updates
Tim is working away on this section!

Extras :
Other courses created by Tim!
Links to Tim's other courses
Source code for all Programs