Course Highlights
  • 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 close to 25 years.
  • Acquire essential java basics for transitioning to the Spring Framework, Java EE, Android development and more.
  • Obtain proficiency in Java 17, as well as older versions incluing Java 11 and Java 8.
Curriculum

9 Topics
Introduction To The Course
Remaster in Progress
Video Quality
Subtitles
How to Get Help
Important Tip - Source Code
Biggest Tip to Succeed as a Java Programmer
Software Tools Introduction
Which Version of Java?

4 Topics
Install JDK 17 for Windows
Install JDK 17 for Mac
Install JDK 17 for Linux
Confirming installation and intro to JShell

13 Topics
Hello World
Variables
Starting out with Expressions
Primitive Types
byte short long and width
Casting in Java
Primitive Types Challenge
Float and Double Primitives
Floating Point Precision and a Challenge
The char and boolean Primitive Data Types
Primitive Types Recap and the String Data Type
Operators Operands and Expressions
Abbreviating Operators

13 Topics
From JShell to an IDE
Installing IntelliJ IDEA for Windows
Installing IntelliJ IDEA for Mac
Installing IntelliJ IDEA for Linux
Configuring IntelliJ IDEA - WINDOWS MAC and LINUX
Hello World in IntelliJ
Hello World in IntelliJ
if-then Statement
Logical AND Operator
Logical OR Operator
Assignment Operator VS Equals to Operator
Ternary Operator
Operator Precedence and Operator Challenge

27 Topics
Introduction
Keywords and Expressions
Statements Whitespace and Indentation (Code Organization)
Code Blocks And The If Then Else Control Statement
if then else Challenge
Methods in Java
More on Methods
Methods Recap
Method Challenge
Code Comparison in IntelliJ
Coding Exercises Introduction
Positive Negative or Zero
Speed Converter
MegaBytes Converter
Barking Dog
Leap Year Calculator
DecimalComparator
Equal Sum Checker
Teen Number Checker
Method Overloading
Method Overloading Challenge
Seconds And Minutes Challenge
Bonus Challenge Solution
Area Calculator
Minutes To Years and Days Calculator
Equality Printer
Playing Cat

37 Topics
Introduction
The switch statement
More switch statement
Traditional Switch Challenge
A Switch Expression Challenge
Number In Word
Number Of Days In Month
The for Statement
The for Statement Challenge Exercise
Sum 3 and 5 Challenge And Using IntelliJ's Debugger
For Loop Recap
Sum Odd
The while and do while statements
The while Loop Challenge Exercise
Digit Sum Challenge
While Loop and Do While Recap
Local Variables and Scope
The class the object static & instance fields and methods
Number Palindrome
First And Last Digit Sum
Even Digit Sum
Shared Digit
Last Digit Checker
All Factors
Greatest Common Divisor
Perfect Number
Number To Words
Flour Pack Problem
Largest Prime
Diagonal Star
Parsing Values and Reading Input using System.console()
Exception Handling and Introduction to Scanner
Reading Input with Scanner
Reading User Input Challenge
Min and Max Challenge
Input Calculator
Paint Job

33 Topics
Introduction
Introduction to Classes and Objects
Introduction to Classes Using Getter Methods
Classes Using Setters and Creating Objects
Classes Challenge Exercise
Sum Calculator
Person
Constructors Part 1
Constructors Part 2
Constructor Challenge Exercise
Reference vs Object vs Instance vs Class
Static vs Instance Variables
Static vs Instance Methods
The POJO
Java's Implicit POJO Type The Record
Wall Area
Point
Carpet Cost Calculator
Complex Operations
Inheritance - Part 1
Inheritance - Part 2
Inheritance - Part 3
What is java.lang.Object?
Inheritance Challenge - Part 1
Inheritance Challenge Part 2
this vs super
Method Overloading vs Overriding Recap
The Text Block and other Formatting Options
Another Look at the String
String Manipulation Methods
The StringBuilder class
Cylinder
Pool Area

20 Topics
Introduction
Composition Part 1
Composition Part 2
Composition Challenge
Composition
Encapsulation Part 1
Encapsulation Part 2
Encapsulation Challenge
Encapsulation
Polymorphism Part 1
Polymorphism Part 2
Casting with classes and using Object and var references
Testing the runtime type using the instanceof operator
Polymorphism Challenge Exercise
Polymorphism
Polymorphism Challenge Exercise Part 2
OOP Master Challenge Exercise Part 1
OOP Master Challenge Exercise Part 2
OOP Master Challenge Exercise The Bonus
Organizing Java Classes Packages and Import Statements

16 Topics
Introduction
Arrays Part 1
Arrays Part 2
Using java.util.Arrays (sort fill copyOf )
Finding a Match Using a Binary Search and testing equality of arrays
Arrays Challenge Exercise
Sorted Array
Arrays Recap
References Types vs Value Types
Variable Arguments (Varargs)
Minimum Element Challenge
Minimum Element
Reverse Array Challenge
Reverse Array
Two-Dimensional Arrays
Multi-dimensional Arrays

21 Topics
Introduction
List and ArrayList Part 1
ArrayList Part 2
ArrayList Part 3
Arrays vs. ArrayLists
ArrayList Challenge Part 1
Arrays ArrayList & LinkedList - (Memory and Big O Notation)
Mobile Phone
LinkedList Part 1
LinkedList Part 2
Iterators
LinkedList Challenge
LinkedList Challenge Continued
Playlist
Introduction to Autoboxing and Unboxing
Autoboxing and Unboxing related to Arrays & Lists
Autoboxing & Unboxing Challenge
Autoboxing & Unboxing Challenge
Banking
Introduction to the enum type
The enum type continued with the switch statement

17 Topics
Introduction
Abstraction & Generalization (with overview of abstract and other modifiers)
Abstract Classes Part 1
Abstract Classes Part 2
Abstract Classes Part 3
Abstract Class Challenge Part 1
Abstract Class Challenge Part 2
Abstract Class
Interfaces Part 1
Interfaces Part 2
Interfaces Part 3
Interfaces what's new since JDK 8 (default methods & public static methods)
Interfaces new since JDK8 (public static & private methods)
Interface vs Abstract Class
Interface Challenge Part 1
Interface Challenge Part 2
Interface

12 Topics
Introduction to Generics
Generics Part 1
Generics Part 2
Generics Part 3
Generic Class Challenge
Generic Class Challenge Part 2
Revisiting Comparable
Comparable vs. Comparator
Generic classes as reference types
Generics methods wildcards and type erasure
Static methods & multiple upper bounds
Putting it all together Final Section Challenge

9 Topics
Introduction
Static Nested Classes
Inner Classes
Inner Classes for Bills Burger Challenge
Inner Classes Challenge
Playlist - Inner Class
Local Classes
Anonymous Classes
Local and Anonymous Class Challenge

13 Topics
Introduction to Lambda Expressions
Introduction to the Lambda Expression and Functional Interfaces
Lambda Expressions syntax and additional examples
Lambda Expressions Continued
Java's Functional Interfaces Consumer & Predicate
Java's Functional Interfaces Function & Supplier
Lambda Mini Challenges
Lambda Expression Challenge Put it all together
What's a Method Reference?
The Most Confusing of the Method References
Method Reference Challenge
Convenience Methods on Functional Interfaces (Chaining lambdas)
Convenience Methods Continued with the Comparator

29 Topics
Introduction to Java's Collections Framework
Collections: Understanding the Big Picture
Code Setup (Deck of Cards) for java.util.Collections methods
Introduction to java.util.Collections
java.util.Collections (shuffle reverse sort indexOfSubList)
java.util.Collections (binarySearch frequency min max rotate)
Collections methods Challenge Your own Card Game
Collections methods Challenge (Five Card Draw) continued
Understanding the importance of the hash code
Code Setup (Phone and Email Contacts) for Sets and Maps
Introduction to Sets & HashSet
Set Operations Symmetric and Asymmetric results
Code Setup (Tasks and TaskData)
Set Operations Challenge
LinkedHashSet and TreeSet
TreeSet Closest match and subset methods
TreeSet Challenge (Theatre Seats)
TreeSet Challenge (Theatre Seat Bonus)
The Map Interface and functionality
Map functionality Continued (compute replace remove)
Working with Map's view collections (keySet values entrySet)
HashMap Challenge A Text-Based Adventure Game
Adventure Game Continued
LinkedHashMap and TreeMap
Working with TreeMap (NavigableMap) methods
Targeted Collections for enum types
Collections Framework Final Challenge (The Setup)
Final Challenge(Store Inventory)
Final Challenge (Store Inventory)

22 Topics
Introduction
Revisiting the final modifier
The final modifier applied to methods and local variables
When Change isn't good
Declaring immutable classes to produce immutable objects Part 1
Declaring immutable classes to produce immutable objects
Challenge: Write your own immutable classes
Defensive Copies Shallow and Deep Copies
Immutable Unmodifiable Collections and Views
Challenge: Use unmodifiable collections
Challenge Continued: Using unmodifiable collections
Constructor review final field initializations Introduction to Initializers
Record Constructors (and javap)
Enum Constructors
Game Console Setup Part 1
Game Console Setup Part 2
Challenge: Initializers and Constructors A Pirate Game
Challenge: Pirate Game continued
Final Classes Review of constructor access modifiers
Sealed Classes
Final Section Challenge
Final Challenge (Pirates Continued Part 2)

20 Topics
Introduction to Streams
A first look at a stream in action
The Structure of the Stream Pipeline
Stream Sources
Stream Source Challenge
Intermediate Operations distinct filter limit skip takeWhile dropWhile
Intermediate Operations map peek sorted
Terminal Operations for statistical information and matching
Code Setup Part 1 (Student Engagement Statistics)
Code Setup Part 2 (Student Engagement Statistics)
Challenge: Terminal Operations
Challenge part 2: Terminal Operations
Terminal operations for processing and transforming stream elements
Using Stream's collect & reduce terminal operations
Challenge: Terminal Operations Part 2
What's Optional?
More Terminal Operations
Streams to Maps
Maps to Streams (using flatMap)
Streams Challenge

18 Topics
Introduction
Functionality on java.lang.Math
Randomization in Java
Randomization Challenge (Rolling Dice)
Bonus Challenge (DiceGame with Scoring)
Introduction to BigDecimal
BigDecimal methods
Overview: Date & Time (java.time)
LocalDate
LocalTime LocalDateTime
Overview: Instance Period Duration and Time Zones
ZoneId (Time zones)
Instant ZonedDateTime Duration Period and ChronoUnit.between
Localization Introduction to Locale
Localization Continued
DateTime and Localization Challenge
Internationalization (ResourceBundle)
Internationalization (ResourceBundle) Part 2

10 Topics
Introduction
What's a Regular Expression?
The Parts of a Regular Expression
Methods that use Regular Expressions
Mini Challenges -Regular Expressions
Using Pattern and Matcher
Matcher methods (find group) Grouping and Capturing
Matcher methods for replacing text
Review of the Regular Expressions for Phone Number/HTML tags
Matcher Challenge

25 Topics
Introduction
Exception Handling: Checked vs. Unchecked the finally clause
Exception Handling: Try with Resources
First Steps: Understanding File Path Files and Paths
Using File Path Files
Methods on Path
Files class: Directory Listings (list walk find)
Files class: Using walkFileTree
File Tree Walking Challenge
Reading text from a file Java IO way
Scanner for reading input files
Character Sets & Reading Text from a File with NIO2 Functionality
Challenge - Reading text from a file
Writing Data To a File
BufferedWriter FileWriter and PrintWriter
File Writing Challenge
Renaming copying deleting files and directories
Copying Deleting Directories: InputStream & Reader's transferTo method
Directory and File Manipulation Challenge
RandomAccessFile
RandomAccessFile Continued
RandomAccessFile Challenge
DataOutputStreamDataInputStream & Serialization
Serialization & Change - Part 1
Serialization & Change - Part 2

30 Topics
Introduction
Java Threads and Thread Basics
Thread Creation and Execution
Interacting with a Running Thread
Thread Challenge
Multithreading and Memory
Concurrent threads concepts: Interleaving Atomicity Memory Consistency Volati
Synchronization synchronized methods
Synchronization synchronized blocks
Producer/Consumer Application Deadlocks
Avoiding Deadlocks with Wait & Notify
Synchronization Challenge
java.util.concurrent.locks
java.util.concurrent.locks continued
Managing Threads Introduction to the ExecutorService SingleThreadExecutorServi
The FixedThreadPool ExecutorService
Additional Thread Pools Callable Submit and the Future
ExecutorService Challenge
Scheduling Tasks
WorkStealingPool ForkJoinPool
Parallel Streams
Parallel Streams Ordering Reducing and Collecting
Synchronized & Concurrent Collections
Thread-Safe Lists and Queues ArrayBlockingQueue
ArrayBlockingQueue Consumer Tasks
Revisiting Deadlock and Other Common Problems
Livelock Example
Starvation & Fair Locks
More Java concurrency features
WatcherService (the File Watcher)

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

46 Topics
JDK11 Global Library Configuration
Create Your First JavaFX Project
JavaFX Overview
JavaFX Hello World Program
GridPane Layout
HBox Layout
BorderPane Layout
Other Layouts
Controls
RadioButton and CheckBox
ComboBox and ChoiceBox
Slider Spinner ColorPicker & DatePicker Controls
TitledPane
Events and Event Handlers
Events Continued
UI Thread
Threads and Runnable
Setup Sample Todo List Application
Base Interface
Add Change Listener
Formatting Dates
Singletons
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
SortedList
FilteredList
CSS With JavaFX
Transforming Nodes and Choosers
More on Choosers and Web Pages
SceneBuilder
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

11 Topics
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

35 Topics
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
Transactions
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

9 Topics
Networking Overview
First Client and Server Apps
Multi Threaded Server
Multi-Threading and Timeouts
UDP Server and Client
High Level APIS
URL Connections and Input Stream Reader
HTTPUrlConnection
Alternatives to HTTPUrlConnection

3 Topics
Introduction to Modules
Module Declarations and Statements
Module Types

7 Topics
Project Setup and Test
Structuring the new project
Creating the first module (Common)
Creating the Module Descriptor file
Creating the 2nd module (Database)
Challenge - Create the final module (UI)
Transitive Dependencies

21 Topics
Introduction
MySQL Installation for Windows
MySQL Installation for Mac
MySQL Installation for Linux
Database Basics in Ten Minutes
Using MySQL WorkBench to create and view a music database
JDBC
Connecting to the music database with JDBC
Querying (Retrieving) Data
SQL Injection and ANSI SQL
Statement.execute vs. Statement.executeQuery
Update Delete Statements and Inserting related records
Using executeUpdate Transactions Commits and Rollback and Batch Execution
Creating a Store Front database SQL Exceptions
JDBC Challenge Transactions and Insertion using Statement
PreparedStatement
PreparedStatement Continued
Challenge: PreparedStatement
CallableStatement
CallableStatement OUT and IN/OUT parameters
CallableStatement with functions

6 Topics
Introduction To The Course
Remaster in Progress
Video Quality
Subtitles
How to Get Help
Important Tip - Source Code

12 Topics
Biggest Tip to Succeed as a Java Programmer
The Four Stages of Becoming a Programmer
Software Tools Introduction
Java Development Kit Installation Overview
Install JDK 11 for Windows
Installing Intellij IDEA for Windows
** IMPORTANT ** - Configuring IntelliJ IDEA
Install JDK 11 for Mac
Installing Intellij IDEA for Mac
Install JDK 11 for Linux
Installing Intellij IDEA for Linux
Configuring IntelliJ IDEA - WINDOWS MAC and LINUX

24 Topics
Introduction
Hello World Project
Defining the Main Method
Hello World Challenge and Common Errors
Variables
Starting out with Expressions
Primitive Types
byte short long and width
Casting in Java
Primitive Types Challenge
float and double Primitive Types
Floating Point Precision and a Challenge
The char and boolean Primitive Data Types
Primitive Types Recap and the String Data Type
Operators Operands and Expressions
Abbreviating Operators
if-then Statement
Logical and Operator
Logical OR Operator
Assignment Operator VS Equals to Operator
Ternary Operator
Operator Precedence and Operator Challenge
First Steps Summary
End of Remaster

19 Topics
Introduction
Keywords And Expressions
Statements Whitespace and Indentation (Code Organization)
Code Blocks And The If Then Else Control Statements
if then else Recap
Methods In Java
More On Methods And A Challenge
Method Challenge - Final Code Changes
DiffMerge Tool Introduction
Install DiffMerge
Using DiffMerge
Coding Exercises
Coding Exercises Example Part 1
Coding Exercises Example Part 2
Coding Exercises Example Part 3
Method Overloading
Method Overloading Recap
Seconds and Minutes Challenge
Bonus Challenge Solution

14 Topics
Introduction
The switch statement (+Challenge Exercise)
Day of the Week Challenge
The for Statement (+Challenge Exercise)
For Loop Recap
Sum 3 and 5 Challenge
The while and do while statements (+Challenge Exercise)
While and Do While Recap
Digit Sum Challenge
Parsing Values from a String
Reading User Input
Problems and Solutions
Reading User Input Challenge
Min and Max Challenge

14 Topics
Introduction
Classes Part 1
Classes Part 2
Constructors - Part 1 (+Challenge Exercise)
Constructors - Part 2 (+Challenge Exercise)
Inheritance - Part 1
Inheritance - Part 2
Reference vs Object vs Instance vs Class
this vs super
Method Overloading vs Overriding Recap
Static vs Instance Methods
Static vs Instance Variables
Inheritance Challenge Part 1 (+Challenge Exercise)
Inheritance Challenge Part 2

9 Topics
Introduction
Composition
Composition Part 2 (+Challenge Exercise)
Encapsulation
Encapsulation (+Challenge Exercise)
Polymorphism
Polymorphism (+Challenge Exercise)
OOP Master Challenge Exercise
OOP Challenge - Solution

24 Topics
Arrays
Arrays (Challenge Exercise)
Arrays Recap
References Types vs Value Types
Minimum Element Challenge
Reverse Array Challenge
List and ArrayList Part 1
ArrayList Part 2
ArrayList Part 3
ArrayList Challenge Part 1
ArrayList Challenge Part 2
ArrayList Challenge Part 3
Bug Fix for ArrayList Challenge
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
Bug Fix for "Track 1" Error
LinkedList Challenge Part 2
LinkedList Challenge Part 3 (Final video)

13 Topics
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
Interface vs Abstract Class
Abstract Class Challenge Part 1
Abstract Class Challenge Part 2
Abstract Class Challenge Part 3 (includes recursion).

5 Topics
Generics Introduction
Our Generics Class
Our Generics Class Part 2
Our Generics Class Part 3
Generics Challenge

10 Topics
Lambda Expressions Introduction
Lambda Expressions Continued
Lambda Expressions Nested Blocks
Scope and Functional Programming
Functional Interfaces & Predicates
More on Predicates & Suppliers
Functions
Chaining java.util.function Functions
Lambda Challenge Part 1
Lambda Challenge Part 2

3 Topics
Streams
Streams - Intermediate and Terminal Operations
Streams - Flatmap & Lambda Best Practices

28 Topics
Collections Overview
Binary Search
Collections List Methods
Comparable and Comparator
Maps
Map Continued and Adventure Game
Adding Exits to the Adventure game
Adventure Game challenge
Adventure Game
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)

8 Topics
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

38 Topics
Exceptions
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
BufferedReader
Load Big Location and Exits Files
Challenge
Buffered Writer and Challenge
Byte Streams
Reading Binary Data and End of File Exceptions
Object Input Output including Serialization
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
Filesystem
More on Paths
Exists and CopyFile
Move Rename and Delete
File Attributes
Read Existing Directory Contents
Separators Temp Files and File Stores
Walk File Tree
Copy Entire Tree
Mapping IO and NIO Methods

2 Topics
Old JavaFX Introduction Video for JDK 8
Old JavaFX Code Vs FXml Video for JDK 8

2 Topics
Source code for all Programs
Bonus Lecture and Information

  Write a Review

Java 17 Masterclass: Start Coding in 2024

Go to Paid Course