Java Programming Masterclass covering Java 11 & Java 17
About Course
Unlock your potential with our free Java programming course. This comprehensive masterclass covers Java 11 & Java 17, providing the skills you need for a successful career as a Java developer.
Taught by a seasoned software developer with over 40 years of experience, this course takes you from beginner to expert, covering all essential concepts, keywords, and practical applications. Learn to:
- Write your first Java program.
- Master object-oriented programming principles.
- Build powerful Java applications using IntelliJ IDEA, a leading integrated development environment.
- Develop core Java skills for Android development, Spring framework, Java EE, and more.
This 100-hour course provides a one-stop shop for learning Java. Get started with the essential material in the first seven sections, covering Java basics in just 14 hours. Explore advanced concepts at your own pace. Learn Java 17, the latest version with long-term support, ensuring your skills are future-proof.
This course is designed for complete beginners, with no prior coding experience required. Benefit from a unique challenge feature that allows you to apply your learning in real-world scenarios. Gain hands-on experience and accelerate your learning through practical exercises.
This bestseller course is completely free and available on platforms like Udemy, Udacity, Coursera, MasterClass, NearPeer, and more. Join over 742,000 students who have already benefited from this course.
Don’t miss this opportunity to learn the most popular programming language. Enroll now and embark on your journey to becoming a skilled Java developer.
What Will You Learn?
- Learn the core Java skills needed to apply for Java developer positions in just 14 hours.
- Be able to sit for and pass the Oracle Java Certificate exam if you choose.
- Be able to demonstrate your understanding of Java to future employers.
- Learn industry "best practices" in Java software development from a professional Java developer who has worked in the language for 18 years.
- Acquire essential java basics for transitioning to the Spring Framework, Java EE, Android development and more.
- Obtain profic
Course Content
Getting Started
-
Introduction To The Course
01:46 -
A Message from the Professor
-
Remaster in Progress
00:48 -
Video Quality
00:50 -
How to Get Help
03:44 -
Important Tip Source Code
02:05 -
Biggest Tip to Succeed as a Java Programmer
01:08 -
Software Tools Introduction
01:18 -
Which Version of Java
02:37
Programming Tools Setup
-
Install JDK 17 for Windows
03:01 -
Install JDK 11 for Mac
02:38 -
Install JDK 11 for Linux
02:06 -
Confirming installation and intro to JShell
10:44
First Steps
-
Hello World
09:46 -
Variables
16:05 -
Starting out with Expressions
09:34 -
Primitive Types
16:33 -
byte short long and width
13:13 -
Casting in Java
09:30 -
Primitive Types Challenge
06:13 -
Float and Double Primitives
10:27 -
Floating Point Precision and a Challenge
12:00 -
The char and boolean Primitive Data Types
12:13 -
Primitive Types Recap and the String Data Type
17:37 -
Operators Operands and Expressions
12:04 -
Abbreviating Operators
14:04
IntelliJ Basics
-
From JShell to an IDE
02:26 -
Installing IntelliJ IDEA for Windows
02:37 -
Installing IntelliJ IDEA for Mac
02:45 -
Installing IntelliJ IDEA for Linux
02:25 -
Configuring IntelliJ IDEA WINDOWS MAC and LINUX
06:29 -
Hello World in IntelliJ
07:22 -
Hello World in IntelliJ
11:25 -
ifthen Statement
08:22 -
Logical AND Operator
07:12 -
Logical OR Operator
04:45 -
Assignment Operator VS Equals to Operator
07:39 -
Ternary Operator
06:20 -
Operator Precedence and Operator Challenge
11:27
Expressions Statements More
-
Introduction
00:35 -
Keywords and Expressions
09:57 -
Statements Whitespace and Indentation Code Organization
09:49 -
Code Blocks And The If Then Else Control Statement
10:22 -
if then else Challenge
10:54 -
Methods in Java
14:01 -
More on Methods
10:21 -
Methods Recap
07:21 -
Method Challenge
13:13 -
Code Comparison in IntelliJ
06:45 -
Coding Exercises
16:05 -
Method Overloading
14:17 -
Method Overloading Challenge
09:46 -
Seconds And Minutes Challenge
12:51 -
Bonus Challenge Solution
10:14
Control Flow
-
Introduction
00:57 -
The switch statement
12:12 -
More switch statement
13:10 -
Traditional Switch Challenge
06:54 -
A Switch Expression Challenge
11:32 -
The for Statement
14:00 -
The for Statement Challenge Exercise
16:16 -
Sum 3 and 5 Challenge And Using IntelliJs Debugger
17:20 -
For Loop Recap
09:09 -
The while and do while statements
12:26 -
The while Loop Challenge Exercise
11:37 -
Digit Sum Challenge
10:21 -
While Loop and Do While Recap
08:56 -
Local Variables and Scope
05:45 -
The class the object static instance fields and methods
07:18 -
Parsing Values and Reading Input using Systemconsole
14:02 -
Exception Handling and Introduction to Scanner
11:54 -
Reading Input with Scanner
09:36 -
Reading User Input Challenge
11:57 -
Min and Max Challenge
09:44
OOP Part 1 Inheritance
-
Introduction
00:52 -
Introduction to Classes and Objects
13:36 -
Introduction to Classes Using Getter Methods
09:36 -
Classes Using Setters and Creating Objects
13:24 -
Classes Challenge Exercise
12:00 -
Constructors Part 1
08:41 -
Constructors Part 2
10:48 -
Constructor Challenge Exercise
09:59 -
Reference vs Object vs Instance vs Class
08:52 -
Static vs Instance Variables
04:33 -
Static vs Instance Methods
04:43 -
The POJO
10:25 -
Javas Implicit POJO Type The Record
11:42 -
Inheritance Part 1
13:57 -
Inheritance Part 2
12:26 -
Inheritance Part 3
13:26 -
What is javalangObject
12:53 -
Inheritance Challenge Part 1
11:52 -
Inheritance Challenge Part 2
05:54 -
this vs super
08:36 -
Method Overloading vs Overriding Recap
13:29 -
The Text Block and other Formatting Options
13:41 -
Another Look at the String
13:53 -
String Manipulation Methods
14:01 -
The StringBuilder class
00:43
OOP Part 2 Polymorphism
-
Introduction
11:30 -
Composition Part 1
12:47 -
Composition Part 2
12:18 -
Composition Challenge
12:29 -
Encapsulation Part 1
10:05 -
Encapsulation Part 2
11:15 -
Encapsulation Challenge
11:05 -
Polymorphism Part 1
12:36 -
Polymorphism Part 2
15:23 -
Casting with classes and using Object and var references
11:45 -
Testing the runtime type using the instanceof operator
06:36 -
Polymorphism Challenge Exercise
11:07 -
Polymorphism Challenge Exercise Part 2
08:04 -
OOP Master Challenge Exercise Part 1
13:33 -
OOP Master Challenge Exercise Part 2
19:25 -
OOP Master Challenge Exercise The Bonus
10:56 -
Organizing Java Classes Packages and Import Statements
10:40
Arrays
-
Introduction
01:11 -
Arrays Part 1
12:07 -
Arrays Part 2
11:26 -
Using javautilArrays sort fill copyOf
10:23 -
Finding a Match Using a Binary Search and testing equality of arrays
06:51 -
Arrays Challenge Exercise
11:25 -
Arrays Recap
07:52 -
References Types vs Value Types
08:20 -
Variable Arguments Varargs
07:20 -
Minimum Element Challenge
08:46 -
Reverse Array Challenge
10:02 -
TwoDimensional Arrays
11:18 -
Multidimensional Arrays
08:01
List ArrayList LinkedList Iterator Autoboxing
-
Introduction
01:18 -
List and ArrayList Part 1
11:25 -
ArrayList Part 2
10:13 -
ArrayList Part 3
09:03 -
Arrays vs ArrayLists
10:51 -
ArrayList Challenge Part 1
12:19 -
Arrays ArrayList LinkedList Memory and Big O Notation
11:32 -
LinkedList Part 1
10:50 -
LinkedList Part 2
09:24 -
Iterators
09:48 -
LinkedList Challenge
10:54 -
LinkedList Challenge Continued
12:16 -
Introduction to Autoboxing and Unboxing
10:44 -
Autoboxing and Unboxing related to Arrays Lists
06:58 -
Autoboxing Unboxing Challenge
07:04 -
Autoboxing Unboxing Challenge
06:45 -
Introduction to the enum type
09:01 -
The enum type continued with the switch statement
08:48
Inner and Abstract Classes Interfaces
-
Interfaces
12:34 -
Interfaces Part 2
14:30 -
Interfaces Challenge Part 1
18:12 -
Interfaces Challenge Part 2
09:00 -
Inner classes Part 1
17:11 -
Inner Classes Part 2
14:45 -
Inner Classes Challenge
11:57 -
Abstract Classes Part 1
16:42 -
Abstract Classes Part 2
10:55 -
Interface vs Abstract Class
04:48 -
Abstract Class Challenge Part 1
19:46 -
Abstract Class Challenge Part 2
12:53 -
Abstract Class Challenge Part 3 includes recursion
19:46
Java Generics
-
Generics Introduction
11:12 -
Our Generics Class
11:37 -
Our Generics Class Part 2
10:13 -
Our Generics Class Part 3
18:57 -
Generics Challenge
13:08
Naming Conventions and Packages static and final keywords
-
Naming Conventions
07:09 -
Packages
17:40 -
Packages Part 2
11:40 -
Packages Part 3
12:05 -
Packages Challenge Exercise
13:28 -
Scope
17:25 -
Scope Part 2 and Visibility
12:07 -
Scope Challenge Exercise
06:53 -
Access Modifiers
12:32 -
The static statement
16:51 -
The final statement
14:37 -
Final Part 2 and Static Initializers
09:01
Java Collections
-
Collections Overview
15:48 -
Binary Search
15:39 -
Collections List Methods
18:23 -
Comparable and Comparator
18:55 -
Maps
16:51 -
Map Continued and Adventure Game
16:33 -
Adding Exits to the Adventure game
18:04 -
Adventure Game challenge
08:13 -
Immutable Classes
15:42 -
Immutable Class Challenge
04:32 -
Sets HashSet
19:52 -
HashSet equals and hashCode
16:52 -
Finish off equals and hashcode
10:56 -
Potential issue with equals and subclassing
11:59 -
Sets Symmetric Asymmetric
15:34 -
Finishing Off Sets
09:16 -
Sets Challenge Part 1
15:26 -
Sets Challenge Part 2
12:50 -
Sets Challenge Part 3
18:17 -
Sorted Collections
13:11 -
StockList Class With Maps
17:05 -
Add a Basket
15:49 -
TreeMap and Unmodifiable Maps
20:50 -
Challenge Part 1
12:41 -
Challenge Part 2
10:52 -
Challenge Part 3
07:56 -
Challenge Part 4 Final
05:05
JavaFX
-
JDK11 Global Library Configuration
18:04 -
Create Your First JavaFX Project
06:00 -
JavaFX Overview
09:48 -
JavaFX Hello World Program
10:55 -
GridPane Layout
15:34 -
HBox Layout
13:11 -
BorderPane Layout
13:16 -
Other Layouts
17:09 -
Controls
15:17 -
RadioButton and CheckBox
17:02 -
ComboBox and ChoiceBox
17:13 -
Slider Spinner ColorPicker DatePicker Controls
14:31 -
TitledPane
06:42 -
Events and Event Handlers
14:29 -
Events Continued
14:38 -
UI Thread
14:40 -
Threads and Runnable
16:18 -
Setup Sample Todo List Application
12:59 -
Base Interface
13:28 -
Add Change Listener
14:17 -
Formatting Dates
07:03 -
Singletons
15:05 -
Load and Save ToDo Items fromto Disk
16:25 -
Add DialogPane
16:31 -
Show Dialog and Add Controller Code
14:33 -
Bug Fix and Update List View
10:27 -
Data Binding and Observable
11:20 -
Cell Factories
14:44 -
Context Menu
15:37 -
KeyEvents and Toolbars
15:41 -
SortedList
12:44 -
FilteredList
16:18 -
CSS With JavaFX
17:39 -
Transforming Nodes and Choosers
16:37 -
More on Choosers and Web Pages
03:23 -
SceneBuilder
22:11 -
Installing SceneBuilder for Windows
05:00 -
Installing SceneBuilder for Mac
03:39 -
Overview of SceneBuilder
07:15 -
Building a UI with SceneBuilder
15:49 -
More on SceneBuilder
17:27 -
JavaFX Challenge
15:14 -
JavaFX Challenge Part 2
13:16 -
JavaFX Challenge Part 3
16:00 -
JavaFX Challenge Part 4
14:03 -
JavaFX Challenge Wrap up
09:15
Basic Input Output including javautil
-
Exceptions
14:00 -
Stack Trace and Call Stack
13:04 -
Catching and throwing Exceptions
14:20 -
Multi Catch Exceptions
08:06 -
Introduction to IO
15:55 -
Writing content FileWriter class and Finally block
14:57 -
Try with Resources
12:13 -
FileReader and Closeable
12:55 -
BufferedReader
12:59 -
Load Big Location and Exits Files
07:30 -
Challenge
05:01 -
Buffered Writer and Challenge
13:11 -
Byte Streams
15:45 -
Reading Binary Data and End of File Exceptions
15:44 -
Object Input Output including Serialization
14:15 -
Finish Object IO and RandomAccessFile class
16:03 -
Create Random Access File
14:29 -
Update Static Initializer Block With Random File Access
11:37 -
Update Adventure Game to Read Random Access File
14:20 -
Java NIO
14:47 -
Writing Objects With Java NIO
11:36 -
Reading and Writing with Java NIO
15:47 -
Writing Binary Files with Java NIO
13:36 -
Reading Files with NIO
15:47 -
Absolute and Relative Reads
11:10 -
Chained Put Methods
13:55 -
Writing Sequentially
13:04 -
FileChannel to Copy Files and Pipes with Threads
15:04 -
Filesystem
18:02 -
More on Paths
12:17 -
Exists and CopyFile
11:59 -
Move Rename and Delete
11:16 -
File Attributes
12:50 -
Read Existing Directory Contents
14:15 -
Separators Temp Files and File Stores
12:25 -
Walk File Tree
11:33 -
Copy Entire Tree
12:58 -
Mapping IO and NIO Methods
12:53
Concurrency in Java
-
Concurrency and Threads Introduction
06:59 -
Threads
13:32 -
Runnable and Thread
13:19 -
Interrupt and Join
09:44 -
Multiple Threads
11:52 -
Thread Variables
09:53 -
Synchronisation
11:05 -
Producer and Consumer
10:55 -
Deadlocks wait notify and notifyAll methods
14:05 -
The Java Util Concurrent package
12:09 -
Thread Interference
11:15 -
Reentrant Lock and Unlock
10:28 -
Using Try Finally With Threads
10:36 -
Thread Pools
12:03 -
ArrayBlockingQueue Class
12:29 -
Deadlocks
10:34 -
More on Deadlocks
14:06 -
Thread Starvation
16:47 -
Fair Locks and Live Locks
12:55 -
Live Lock Example and Slipped Conditions
05:04 -
Other Thread Issues
14:04 -
JavaFX Background Tasks
10:16 -
Data Binding
15:25 -
Service
14:34 -
Challenge 1 and 2
09:10 -
Challenge 34 and 5
11:15 -
Challenge 6 and 7
11:00 -
Challenge 8
05:30 -
Challenge 9
04:53
Lambda Expressions
-
Lambda Expressions Introduction
15:33 -
Lambda Expressions Continued
14:50 -
Lambda Expressions Nested Blocks
14:45 -
Scope and Functional Programming
15:02 -
Functional Interfaces Predicates
12:06 -
More on Predicates Suppliers
16:38 -
Functions
13:11 -
Chaining javautilfunction Functions
11:56 -
Streams
13:50 -
Streams Intermediate and Terminal Operations
13:06 -
Streams Flatmap Lambda Best Practices
21:30 -
Lambda Challenge Part 1
12:07 -
Lambda Challenge Part 2
16:33
Regular Expressions
-
Regular Expressions Introduction
16:21 -
Character classes and Boundary Matchers
13:55 -
Quantifiers and the Pattern and Matcher classes
14:42 -
Matcher find and Group Methods
15:03 -
And Or Not
15:26 -
Regular Expressions Challenge Part 1
17:04 -
Regular Expressions Challenge Part 2
15:30 -
Regular Expressions Challenge Part 3
06:13
Debugging and Unit Testing
-
Introduction to Debugging
17:57 -
More on Debugging
11:24 -
Field Watch Points
16:14 -
Advanced Debugging
10:14 -
Introduction to Unit Testing with JUnit
16:20 -
Asserts in Junit
18:19 -
More Asserts and Exception Handling
16:34 -
Parameterized Testing
12:21 -
JUnit Challenge 1 and 2
21:41 -
JUnit Challenges 3 to 7
12:22 -
Junit Challenges 8 to 10
12:07
Databases
-
Section Introduction
01:55 -
Database Terminology
10:32 -
Install and Setup SQLite for Windows
07:56 -
Install and Setup SQLite for Mac
02:00 -
Install and Setup SQLite for Linux
02:38 -
Introduction to SQLite
11:15 -
More with SQLite
10:42 -
Querying Data With SQL
16:02 -
SQL Order by and Joins
13:11 -
More Complex Joins
11:44 -
Wildcards in Queries and Views
15:17 -
Housekeeping and Final SQL Challenge
14:17 -
JDBC and SQLite GUI Browser
15:49 -
Creating Databases With JDBC in Java
17:26 -
JDBC Insert Update Delete
15:49 -
executeQuery and using Constants
20:39 -
The Music SQLite Database
12:43 -
Write Java Query for Artists
14:46 -
Executing SQL in DB Browser
17:18 -
Query Albums by Artist Method
16:23 -
Query Artists for Song method
15:03 -
Result Set Meta Data
14:39 -
Functions and Views
16:38 -
Write the Method to Query View
11:48 -
SQL Injection Attacks and Prepared Statements
17:01 -
Transactions
13:41 -
Inserting Records With JDBC
10:08 -
Insert Albums Artists and Songs
14:00 -
Test Insert JDBC Code
18:07 -
JDBC with a GUI Program
17:53 -
Add Artists
12:35 -
Fix Artist and Preload Records
13:24 -
Implement Artist Query
11:58 -
Add ProgressBar
09:38 -
Handling Updates
15:14
Java Networking Programming
-
Networking Overview
09:39 -
First Client and Server Apps
15:03 -
Multi Threaded Server
14:04 -
MultiThreading and Timeouts
12:46 -
UDP Server and Client
18:13 -
High Level APIS
18:55 -
URL Connections and Input Stream Reader
18:06 -
HTTPUrlConnection
17:57 -
Alternatives to HTTPUrlConnection
21:06
Java 9 Module System
-
Introduction to Modules
06:21 -
Module Declarations and Statements
02:08 -
Module Types
05:39
Migrating Java Projects to Java 9
-
Project Setup and Test
07:24 -
Structuring the new project
04:02 -
Creating the first module Common
12:04 -
Creating the Module Descriptor file
13:25 -
Creating the 2nd module Database
10:44 -
Challenge Create the final module UI
09:52 -
Transitive Dependencies
07:29
Extra Information Source code and other stuff
-
Bonus Lecture and Information
05:01
Earn a certificate
Add this certificate to your resume to demonstrate your skills & increase your chances of getting noticed.