Hackr.io is a community to find and share the best online courses & tutorials. Join them, it only takes 30 seconds.

Here's how it works:


Anybody can submit a course or a tutorial


Community upvotes the useful tutorials


The best tutorials rise to the top

Complete Java Masterclass (udemy.com)

Visit Tutorial
My Courses
Paid Video Java 9
Top Three Medal #2 out of total 61 Java tutorials & courses

Why developers like this tutorial (one-liner reviews):

Content quality

Video quality

Qualified Instructor

Course Pace

Course depth and Coverage

Add your one-liner review here:

Tutorial Info

Self Paced
76 hours on-demand video
Available On Completion
Submitted by:
Visit Tutorial

Tutorial Details

What you'll learn

  • How to build creative, fully-functional Java 8 programs with confidence (whilst having fun, too)
  • How to program the right way, cutting out the useless fluff and filler
  • How to easily write advanced programs for all computing platforms at once
  • Expert-level knowledge of Java code (+ advanced tips and tricks used by the pros)
  • The core skills needed to program for big clients, as a travelling freelancer or from home


  • A computer with either Windows, Mac or Linux to install all the free software and tools needed to build your new apps (I provide specific videos on installations for each platform)
  • A strong work ethic, willingness to learn, and plenty of excitement about the awesome new programs you’re about to build
  • Nothing else! It’s just you, your computer and your hunger to get started today



Join over 230,000 students just like you who’re having massive success with their Java 8 and Java 10 programs using this exact course (and learning to code the right way)

“There’s a reason this course is a bestseller and highest rated on Udemy...”


Want to go from no previous coding experience -- overwhelmed and confused about where to even start -- to advanced Java 8 and Java 10 programmer, able to seamlessly build creative and exciting programs with confidence?

You wouldn’t be reading this otherwise. Here’s the great news…

You’ve just stumbled upon the most complete, in-depth beginner to advanced Java 8 and Java 10 programming course online. With over to 230,000 students enrolled and tens of thousands of 5 star reviews to date, these comprehensive tutorials cover everything you’ll ever need.

Whether you want to:

- become an in-demand Java developer for exciting software companies

- go freelance and work from home, setting your own schedule and rates

- sharpen your core programming skills to reach the advanced level

- simply bring your own ideas to life with your first profitable program

...this complete Java developer course is exactly what you need, and more. (You’ll even get a certification of completion to add to your arsenal)

What makes this course a bestseller?

Like you, thousands of others were frustrated and fed up with fragmented Youtube tutorials which assume you already know a bunch of stuff, as well as thick, college-like textbooks able to send even the most caffeine-fuelled coder to sleep.

Like you, they were tired of low-quality lessons, poorly explained topics and all-round confusing info presented in the wrong way. That’s why so many find success in this complete Java developer course. It’s designed with simplicity and seamless progression in mind through its HD, comprehensive tutorials.

This course assumes no previous coding experience and takes you from absolute beginner core concepts, like showing you the free tools you need to download and install, to writing your very first Java 8/Java 10 program. We’ll then explore the advanced Java feature set to create awesome programs from the ground up, finishing with your industry recognised certification of completion.

Here’s just some of what you’ll learn

(It’s okay if you don’t understand all this yet, you will in the course)

  • All the essential Java keywords, operators, statements, and expressions needed to fully understand exactly what you’re coding and why - making programming easy to grasp and less frustrating

  • New Java 9 and Java 10 content added - find out how to use cool new Java 9 features like modules!

  • How to safely download and install all necessary coding tools with less time and no frustrating installations or setups

  • Complete chapters on object-oriented programming and the Java API (the protocols and tools for building applications) so you can code for all platforms and derestrict your program’s user base (and potential sales)

  • How to develop powerful Java applications using one of the most powerful Integrated Development Environments on the market, IntelliJ IDEA! - Meaning you can code functional programs easier.  IntelliJ has both a FREE and PAID version, and you can use either in this course.

(Don’t worry if you’re used to using Eclipse, NetBeans or some other IDE. You’re free to use any IDE and still get the most out of this course)

  • How to not only code for desktop platforms, but for Android applications so you can fully utilize this booming mobile marketplace

  • Java know-how for tools such as the Spring framework, popular amongst enterprise-level development (for big clients)

  • Advanced coding tips and tricks used by the world’s most in-demand programmers as well as the top tech companies, so you can create apps not only for yourself, but as a profitable business on your terms if you choose to

And much, much more...


Don't worry if none of that made sense. We’ll go into great detail explaining each and every core concept, programming term, and buzzwords you need to create your exciting Java 10 / Java 8 program.

By the end of this comprehensive course, you’ll master Java programming no matter what level of experience you’re at right now. You’ll understand what you are doing, and why you are doing it. This isn’t a recipe book, you’ll use your own creativity to make unique, intuitive programs.

Not only do these HD videos show you how to become a programmer in great detail, but this course includes a unique challenge feature. Each time a core concept is taught, a video presents a challenge for you to help you understand what you have just learned in a real world scenario.

You’ll go and complete the challenge on your own, then come back and see the answers and explained in detail in the video, allowing you to check your results and identify any areas you need to go back and work on.

This is a proven way to help you understand Java faster and ensure you reach your goal of becoming a Java Developer in record time. Remember doing those old past exam papers in high school or college? It’s the same concept, and it works.

As your instructor, I have over 30 years experience as a software developer and teacher and have been using Java since the year 2000. Yes, over 15 years (I’ve taught students younger than that). Meaning not only can I teach this content with great simplicity, but I can make it fun too!

It’s no surprise my previous students have amazing results...

See what your fellow students have to say:

"If you want to learn Java programming, this is definitely the best place. Tim is a brilliant instructor and he’s quick to answer any questions about programming in Java. Because Tim explains almost all the concepts in a non-technical jargon, this course is perfect for complete beginners or intermediates." - Casper Donnoly, TX, USA

"Great course! Everything is explained simply which is super important for learning programming, he nails it!" - Keith Fox, Colorado, USA

“This course has taught me so much. I’ve gone from newbie to pretty much an expert in no time! Thanks so much Tim :)"  - Via Kim

"Great course. He gives you challenges that really test your knowledge on that section. He’s crystal clear and although some parts are a long, it's only to make sure you get it. This is the best course I’ve taken." - Chukwuebuka

“This Java course is worth every penny and I find Tim to be one of the best instructors here on Udemy.” - Daniel Kubanyi

It’s safe to say my students are thrilled with this course, and more importantly, their results, and you can be too

This complete beginner to advanced Java course will teach you everything you need to know in order to code awesome, profitable projects, and of course, have fun whilst doing it.

Why learn Java compared to other programming languages?

That’s easy.

Java is the most popular programming language in use (TIOBE index) since it’s the only language that works across all computer platforms (and android mobile) without needing to be recompiled (edited) for each one.

You code once, and the JVM (Java Virtual Machine) does all the work in making sure your awesome new programme runs smoothly on any platform, whether Windows, Mac, Linux or Android mobile.

Why is this great?

Not only does this multi-platform language save you countless hours in rewriting code, it means you can make your software available for download, and even for sale on every marketplace -- reaching millions more potential users, both on desktop and mobile!  

Besides, you can’t afford not to know it...

Think about it. If your competition or fellow coders know Java -- the most popular coding language -- and you don’t…

Who has the huge market advantage?

Who will bring your awesome idea to life first, dominating all platforms?

Who will score the big companies and clients?

The one who knows Java inside out of course. You can be that person.

“Learning to program with Java was a no-brainer. It opened a lot of doors”

Don’t get me wrong, this course is not for everyone.

This is not some pushbutton, get rich quick recipe book where you copy other people’s code, make low-quality programs and hope to have contracts thrown at you from deep-pocket clients, or code the most intuitive, creative programs on your own.  

This course takes work. There’s a lot to learn with Java, but with the right guidance, information, tutoring and tests, it doesn’t have to be as difficult or time-intensive as you think.

Who this course is NOT for:

  • People looking to flood the market with poorly functioning programs for a quick sale

  • People just looking to learn the ‘bare minimum', stay at the novice level and hope to succeed with Java

  • People who’re happy with mediocre programs

  • People who put in little effort and aren't motivated to find massive success with Java development

Who this course IS for:

  • People who want to produce the highest-quality, creative software

  • People looking to go from absolute beginner to advanced Java expert

  • People looking for expert knowledge and insider tips used by the world’s best programmers and top companies

  • People looking to make money ONLY developing fully-functioning, intuitive programs - whether corporate, self-employed or freelance

  • People who believe in hard work, and who aren’t afraid to fail before they succeed

If this sounds like you, then you’ll find yourself going from beginner to successful Java programmer with less time, effort and investment than any other resource out there. Not to mention you get a certification of completion with this course, giving you extra credentials over others.

I’m always updating this course with fresh content, too

It’s no secret how technology is advancing at a rapid rate. New, more powerful hardware and software are being released every day, meaning it’s crucial to stay on top with the latest knowledge.

That’s why I’m always adding new, up-to-date content to this course at no extra charge. Buy this course once, and you’ll have lifetime access to it and any future updates (which are on the way as we speak).

Now that Java 10 is released, you won’t have to worry about buying any more courses or thick, heavy books. Simply log in to this course (I’ll send you an email when any updates are added) and you can quickly and easily catch up on any new and exciting releases!

With this complete Java developer course, you’re expertise will never go out of date (or ‘obsolete’ if we want to get nerdy).

I’ll personally answer all your questions

As if this course wasn’t complete enough, I offer full support, answering any questions you have 7 days a week (whereas many instructors answer just once per week, or not at all).

This means you’ll never find yourself stuck on one lesson for days on end. With my hand-holding guidance, you’ll progress smoothly through this course without any major roadblocks.

That’s just one reason why I was voted top 10 in the 2015 Udemy instructor awards (out of a whopping 18,000 instructors), and quickly became a top-rated, bestselling instructor on the entire site.  

Student Quote: “Tim is extremely responsive, all questions are dealt with rapidly and the discussion forum is very interactive. Tim is ace!”

There’s no risk either!

This course comes with a full 30 day money-back guarantee. Meaning if you are not completely satisfied with the course or your progress, simply let me know and I’ll refund you 100%, every last penny no questions asked.

You either end up with advanced Java skills, go on to develop great programs and potentially make an awesome career for yourself, or you try the course and simply get all your money back if you don’t like it…

You literally can’t lose.

Ready to get started, developer?

Enrol now using the “Buy Now” button on the right, and get started on your way to creative, advanced Java 8 brilliance. Or, take this course for a free spin using the preview feature, so you know you’re 100% certain this course is for you.

See you on the inside (hurry, class is waiting!)

Who is the target audience?
  • This course is perfect for absolute beginners with no previous coding experience, to intermediates looking to sharpen their skills to the expert level
  • Those looking to build creative and advanced Java apps for either personal use or for high-paying clients as a self-employed contractor
  • Those who love letting their own creative genius shine, whilst getting paid handsome amounts to do so



Getting Started With This Course


Which version of Java should you use?

Install JDK 10 on Windows

Install and Configure Intellij on Windows

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available

Install JDK 10 on a Mac

Install and Configure Intellij on a Mac

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available

Install JDK 10 on Linux

Install and Configure Intellij on Linux

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available

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

MegaBytes Converter

Barking Dog

Leap Year Calculator


Equal Sum Checker

Teen Number Checker

Method Overloading

Method Overloading Recap

Seconds and Minutes Challenge

Bonus Challenge Solution

Area Calculator

Minutes To Years and Days Calculator

Equality Printer

Playing Cat

Control Flow Statements


The switch statement (+Challenge Exercise)

Day of the Week Challenge

Number In Word

Number Of Days In Month

The for Statement (+Challenge Exercise)

For Loop Recap

Sum 3 and 5 Challenge

Sum Odd

The while and do while statements (+Challenge Exercise)

While and Do While Recap

Digit Sum Challenge

Number Palindrome

First And Last Digit Sum

Even Digit Sum

Shared Digit

Last Digit Checker

Greatest Common Divisor

All Factors

Perfect Number

Number To Words

Parsing Values from a String

Flour Pack Problem

Largest Prime

Diagonal Star

Reading User Input

Problems and Solutions

Reading User Input Challenge

Min and Max Challenge

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

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

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)

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)

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

Interface vs Abstract Class

Abstract Class Challenge Part 1

Abstract Class Challenge Part 2

Abstract Class Challenge Part 3 (includes recursion).

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)



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


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

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


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

Java Networking Programming

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


Alternatives to HTTPUrlConnection

Java 9 Module System

Introduction to Modules

Module Declarations and Statements

Module Types

Migrating Java Projects to Java 9

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

Bonus Material

Bonus - Please Watch!

Check Out My Other 30 Udemy Courses!

Source code for all Programs

Discuss this tutorial:

Ask a question or write your feedback/review of this course or tell anything to the people taking this course.

Kiên Tươi
4 months ago

many concepts to learn, good :3

Tshivhiahuvhi Mpfuluseni Sense

I am a student who want to learn how to program from scretch but starting from second program

More Java Tutorials