Type to search

Development IT and Software

Java Programming Masterclass for Software Developers

Education Şub 24

To Become An Advanced Java Programmer, You Have All The Knowledge To Have In This Course.

The Java Programming language is one of the most advanced coding languages. You can easily solve the most complex and difficult developments of the business world with Java Programming.

Instructor: Tim Buchalka

Welcome to the complete Java Masterclass where you’ll learn real-world Java development skills that you can use to help get your first programming job or perhaps to get a more senior position.

The fact is that Java is one of the most popular programming languages in the world and that means lots of job and freelance opportunities are available for anyone with appropriate Java skills.

Hi, my name is Tim and I’ll be leading you through this course. I’ve been a professional software developer for well over 35 years and have been programming in Java for over 18 years.
In 2015 I transitioned to full-time teaching and my programming courses on Udemy have been extremely well received.
So this course covers everything from downloading and installing the free tools you need to create Java programs through to creating your first program and then progressively goes through all the major features of Java in an interactive way building to more complex programs and Java features as we go hrough.

So there’s numerous challenges and coding exercises included and they’re there to test your knowledge of what’s taught and to further your understanding.
The course has currently over a quarter of a million students and tens of thousands of glowing reviews and is the number one Java course on Udemy.

The content in the course is continually updated so that you don’t have to worry about it going out of date and also any questions you have are answered promptly in the Questions and Answers section of the course. By the end of the course you’ll have a deep understanding of Java and be able to write your own Java programs. In addition, you’ll also be in a position to apply for Java programming jobs and to take the Oracle Java certification exam as well if you choose.

And many students have been, who have been through the course have done just that. Now the course is backed by Udemy’s 30-day money-back guarantee.

So if you try the course and find for any reason that it’s not for you, you can return it without any hassle.
The ideal student is simply anyone who wants to learn how to program in Java. No previous programming experience is required and in addition there’s no requirements or prerequisites needed to take this course other than having access to a computer. So if you’re ready to begin your Java journey and get instant access to all the on-demand videos then sign up now.

You can begin instantly and I look forward to seeing you and helping you learn Java.

What is this course teaching

  1. Be able to build any app you want
  2. Learn the core Java skills needed to apply for Java developer positions in just 14 hours.
  3. Be able to demonstrate your understanding of Java to future employers.
  4. Acquire essential java basics for transitioning to the Spring Framework, Java EE, Android development and more.
  5. Be able to sit for and pass the Oracle Java Certificate exam if you choose.
  6. Learn industry “best practices” in Java software development from a professional Java developer who has worked in the language for 18 years.
  7. Obtain proficiency in Java 8 and Java 11.

Course Details

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

Whether you want to:

– build the skills you need to get your first Java programming job

– move to a more senior software developer position

– pass the oracle java certification exam

– or just learn java to be able to create your own java apps quickly.

…this complete Java Masterclass is the course you need to do all of this, and more.

Are you aiming to get your first Java Programming job but struggling to find out what skills employers want and which course will give you those skills?

This course is designed to give you the Java skills you need to get a job as a Java developer.  By the end of the course you will understand Java extremely well and be able to build your own Java apps and be productive as a software developer.

Lots of students have been success with getting their first job or a promotion after going through the course.

Here is just one example of a student who lost her job and despite having never coded in her life previously, got a full time software developer position in just a few months after starting this course.  She didn’t even complete the course!

Three months ago I lost my job, came to a turning point in my life, and finally made the drastic decision to completely change course.   I decided to switch career path and go into coding. My husband found and gave me your Complete Java Masterclass at Udemy as a gift, and I wholeheartedly dove into it as a life line. Following your course has been absolutely enjoyable (still working on it, not yet finished), and has been a great way of keeping on course, dedicated and motivated.  Yesterday, three months after starting the course and honestly to my surprise, I received (and accepted!) a job offer as a full-time developer. I wanted to just drop you a line to say thank you for doing this work, for being such a dedicated teacher, and for putting all this knowledge available out there in such an approachable way. It has, literally, been life changing. With gratitude,  Laura”

The course is a whopping 76 hours long.  Perhaps you have looked at the size of the course and are feeling a little overwhelmed at the prospect of finding time to complete it.   Maybe you are wondering if you need to go through it all?

Firstly, Laura’s story above shows that you do not have to complete the entire course – she was yet to complete the course when she accepted her developer job offer.

Secondly, the course is designed as a one stop shop for Java.

The core java material you need to learn java development is covered in the first seven sections (around 14 hours in total).  The Java Basics are covered in those sections. The rest of the course covers intermediate, advanced and optional material you do not technically need to go through.

For example section 13 is a whopping 10 hours just by itself and is aimed at those students who want to build desktop applications with graphical user interfaces.  JavaFX (which is the technology used in this section) is something that most java developers will rarely or never need to work on.  So you could skip that section entirely.  But if you are one of the few that need to build user interfaces, then the content is there and ready for you.   And there are other sections you can completely avoid if you wish.

If you want to know absolutely everything about Java, then you can go through the entire course if you wish, but it’s not necessary to do so if you are just looking to learn the essential information to get a java developer position.

Why would you choose to learn Java?

The reality is that there is a lot of computer languages out there.  It’s in the hundreds.  Why would you choose the Java language?

The number one reason is its popularity.  According to many official websites that track popularity of languages, Java is either #1 or in the top 3.  Popularity means more companies and their staff are using it, so there are more career opportunities available for you if you are skilled in the language.

The last thing you want to do is pick a language that is not in mainstream use.  Java came out in the 1990’s and is still very popular today.

What version of Java should you learn?

Generally speaking you would want to learn the very latest version of a computer programming language, but thats not necessarily the case with Java.

Until recently Java releases were infrequent (one major release in 3 years was common).  Companies standardised on specific versions of Java.  Right now most companies are still focused on Java 8, which is a relatively old version, dating back to 2015.

Oracle (the owners of Java) are now releasing new versions of Java every six months, and when the new version comes out the old version is no longer supported.

But to cater for most companies who tend to stick to specific versions of Java for a long time, they have marked the current version of Java – Java 11 as LTS – or Long Term support. That means that they guarantee to support this version for the long term – for a number of years at least.

Companies will stick to versions of Java that are supported in the long term. For career purposes you should learn the appropriate versions of Java that your future employer will likely be using.  Right now thats Java 8 and Java 11 (Java 9 and Java 10 have been released and already been marked obsolete and are no longer supported).

The good news is that this course is focused on Java 8, and has recently been updated for Java 11.

Will this course give me core java skills?

Yes it will.  Core Java is the fundamental parts of the java jdk (the java development kit) that programmers need to learn to move onto other more advanced technologies.

Why should you take this course?

It’s been a best seller since it’s release on Udemy, you would be joining over 260,000 students who are already enrolled in the course.

There are close to 60,000 reviews left by students.  It’s rated as the best course to learn Java for beginners.

What makes this course a bestseller?

Like you, thousands of others were frustrated and fed up with fragmented Youtube tutorials or incomplete or outdated courses 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 content.

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 program.  You will learn the core java skills you need to become employable in around 14 hours, and if you choose to, can take advantage of all the additional content in the course. It’s a one stop shop to learn java. If you want to go beyond the core content you can do so at any time.

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
  • You will learn the answers to questions like What is a Java class, What is polymorphism and inheritance and to apply them to your java apps.
  • 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 many aspects of 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.  IntelliJhas 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)

  • Learn Java to a sufficient level to be a be to transition to core Java technologies like Android development, the Spring framework, Java EE (Enterprise edition) in general as well as and other technologies. In order to progress to these technologies you need to first learn core Java – the fundamental building blocks.  That’s what this course will help you to achieve.


Don’t worry if none of that made sense. I go into great detail explaining each and every core concept, programming term, and buzzwords you need to create your own Java programs.

This truly is Java for complete beginners.

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 which I then explain in detail in a 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 35 years experience as a software developer and teacher and have been using Java since the year 2000. Yes, over 18 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:

“This course was a guiding light in my “Becoming a developer” path from the first step. It helped me become a much more educated developer comparing to my friend who learned to code from trial/error. It’s still a guide for me. every now and then I will come back to this course to learn something new or to improve what I’ve learned somewhere else. A BIG Thanks to “Tim Buchalka” my Master.” – Sina Jz

“I was an absolute beginner when I started this course, and now I can write some good small advanced clean codes. I wrote a code and showed it to a programmer, and he was shocked, he told me that I’m more than ready to start a programming career.” – Amirreza Moeini

“I am taking this class in conjunction with a Java 101 college class. I have learned more in one afternoon of videos from this class than I have in 4 weeks of college class. Tim actually explains what things are and why they do what they do, as opposed to my college instructor that mainly said “go make a program that does *whatever*” and then I had to figure out a program that would meet those requirements but not actually learning why it worked.” – Stacy Harris

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

This complete Java course will teach you everything you need to know in order to code awesome, profitable projects,

Is the course updated?

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.

A lot of other courses on Udemy get released once, and never get updated.  Learning an older version of Java can be counter productive – you could will be learning the “old way” of doing things, rather than using current technology.

Make sure you check the last updated date on the page of any course you plan to buy – you will be shocked to see some have not been updated for years.

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

I’ve continued to do this since the original version of the course came out, and recently have been updating it to Java 11.

With this complete Java Masterclass, you will always have updated, relevant content.

What if I have 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  Udemy instructor awards (out of a whopping 18,000 instructors), and quickly became a top-rated, bestselling instructor on the Udemy site.

Student Quote: “This course is a great place to ask questions if you have them or find help if you become stuck in areas.” – Blake S.

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 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 “Add to Cart” button on the right, and get started on your way to creative, advanced Java 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, Java class is waiting!)

Who this course is for:
  • 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.

What's ın Course Content

Course Introduction

  • Introduction To The Course

Setup and First Steps

  • Playing Videos In The Highest Quality
  • Working With Subtitles
  • Getting Support
  • Overview of Software (Free)
  • Which Version Of Java? (Free)
  • Installing JDK 11 on Windows (Free)
  • Installing and Configuring IntelliJ IDEA on Windows
  • Installing JDK 11 on a Mac
  • Installing and Configuring IntelliJ IDEA on a Mac
  • Installing JDK 11 on a Linux Machine
  • Installing and Configuring IntelliJ IDEA on a Linux Machine
  • First Steps – Creating your first Java Program (Free)
  • Exploring IntelliJ IDEA

Variables, Datatypes and Operators

  • Introduction (Free) – An introduction to this section of the course dealing with Variables, Datatypes and Operators.
  • What Are Variables? In this video you will be tackling Java variables and data types. These are “boxes” in your computer memory to store items in. We will cover what they are, how to declare them, and how to make use of them in programs. We’ll print some variables out on screen, and finish with a challenge that will test your understanding.
  • Getting To Know Primitive Data Types – The Byte, Short, Int And Long – In this video we will be talking about the most common data types use in Java which are the primitive data types. We will focus on byte, short, int and long. You will learn how to declare and use these, and what they are used for, and the range of values you can store in them. Finally, you will get to test your new found knowledge with a challenge at the end.
  • Getting To Know Primitive Data Types – Float And Double – Continuing on with our discussions of primitive data types, in this video we will explore data types that deal with numbers that are not just whole numbers. You will be introduced to the float and double primitive data types, find out how each are declared, learn the differences between them both, and why you would choose one over the other. At the end of the video will be a challenge to help your understanding of what we have learned in the video.
  • Getting To Know Primitive Data Types – Char And Boolean – Char and Boolean are the two primitive data types explored in this video. We will be covering how to declare these type of variables and you will obtain a better understanding of how to use, and why you would want to use these data types in your programs. We finish off with a challenge.
  • Understanding Strings And Finishing Up Primitive Data Types – This video will summarize all primitive data types we have worked with so far, and then look at another very important object in Java, the String. Although it seems at first glance to be another primitive data type, the String is actually much more as you will find out!
  • Operators In Java (Free) Its time to find out about Operators in Java, and the If statement. What they are, how to use them, and why you need to u nderstand them to become a good programmer.
  • More On Operators And Operator Precedence – More Operators are discussed in this video, and then we move on to operator precendence which is an important concept to understand. We also discuss some typical gotchas for students new to progamming and Java in general. By the end of this video you will have a good understanding of operators and how to use them.

Java Tutorial: Expressions, Statements, Code blocks, Methods and more

  • Introduction – An introduction to this section of the course dealing with Expressions, Statements, Code blocks and Methods.
  • Keywords And Expressions (Free) In this video we will learn about Java keywords as well as what makes up an expression. You will find out the keywords that Java has already reserved, how Java lets you know that these keywords are reserved, and you will get to know what a valid expression looks like. A Challenge is at the end of the video to assist your understand of these important concepts.
  • Statements, Whitespace and Indentation (Code Organization) – In this lecture we will discuss what statements are, and how to construct them. We will then move to finding out how Java treats whitespaces (and what it is) and how indenting your code makes for a better programming experience.
  • Code Blocks And The If Then Else Control Statements – Lets discuss code blocks, what they are, how to put a code block together, and why you would want to use one. We will cover the if then else statement, and how this applies to programming and finish off with a challenge to help you understand the concepts taught in the video.
  • if then else Recap
  • Methods In Java – A very important concept in Java are Methods. In this video lecture you will learn what they are, how to create them, and why they are integral to Java (and programming in general). We will go through what a method is comprised of, and the advantages of using them and how to have them perform constructive tasks in your Java programs.
  • More On Methods And A Challenge – In this video we continue exploring methods, and end with a method challenge to assist in your understanding of them.
  • 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
  • Speed Converter
  • MegaBytes Converter
  • Barking Dog
  • Leap Year Calculator
  • DecimalComparator
  • 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

  • Introduction – Get the basic understanding on what this section will cover with regards to Control Flow Statments
  • The switch statement (+Challenge Exercise) – We learn about the switch statement in Java in this video, and its role in controlling the flow of your programs. Plus apply the skills you have learned with a challenge exercise.
    The switch statement (+Challenge Exercise)
  • Day of the Week Challenge
  • Number In Word
  • Number Of Days In Month
  • The for Statement (+Challenge Exercise) – The for statement is extremely popular and useful in Java. Lets explore how to use it in this video. Plus apply the skills you have learned with a challenge exercise.
  • For Loop Recap
  • Sum 3 and 5 Challenge
  • Sum Odd
  • The while and do while statements (+Challenge Exercise) – To other major control flow statements in Java are the while and do while statements. Lets explore both in this video. Plus apply the skills you have learned with a 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
  • Input Calculator
  • Paint Job

OOP Part 1 – Classes, Constructors and Inheritance

  • Introduction – An introduction to this section of the course dealing with Object Oriented Programming, specifically, Classes, Objects, Constructors and Inheritance.
  • Classes Part 1 (Free) – Lets kick off our study of object oriented programming with classes in this video.
  • Classes Part 2 – Lets continue on with our discussions about Classes in Java in this video.
  • Sum Calculator
  • Person
  • Constructors – Part 1 (+Challenge Exercise) – Lets look at Constructors and their importance to creating classes in Java in this video. Plus apply the skills you have learned with a challenge exercise.
  • Constructors – Part 2 (+Challenge Exercise) – More discussions about Constructors in this video.
    Plus apply the skills you have learned with a challenge exercise.
  • Wall Area
  • Point
  • Carpet Cost Calculator
  • Complex Operations
  • Inheritance – Part 1 – Inheritance is a very important concept in OOP. Lets explore it and its role in Java in this video.
  • Inheritance – Part 2 – Continuing on with our inheritance discussions from the previous video, we look at more advanced concepts in this video.
  • 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) – Its challenge time, lets look at understanding what we have learned about Inheritance with a challenge in this video.
  • Inheritance Challenge Part 2 – Finishing off the solution to the inheritance challenge raised in the last video.
  • Cylinder
  • Pool Area

OOP Part 2 – Composition, Encapsulation, and Polymorphism

  • Introduction – An introduction to this section of the course dealing with Object Oriented Programming, specifically, Classes, Objects, Constructors and Inheritance.
  • Introduction – An introduction to this section of the course dealing with Composition, Encapsulation and Polymorphism.
  • Composition – The second major component of OOP is composition. Lets explore that concept in this video.
  • Composition Part 2 (+Challenge Exercise) – Lets finish off our study of composition in Java in this video. Plus apply the skills you have learned with a challenge exercise.
  • Encapsulation – Have an understanding about one of the fundamental object oriented programming which is encapsulation
  • Encapsulation (+Challenge Exercise) – Continuation on the discussion of encapsulation
  • Polymorphism (Free) – Lets go through Polymorphism.
  • Polymorphism (+Challenge Exercise) – Continue with the discussion on Polymorphism and take on the challenge.
  • OOP Master Challenge Exercise – Part 1 of the Master challenge for object oriented programming to help you understand what has been taught in this and the previous sections of the course.
  • OOP Challenge – Solution – Part 2 of the Master challenge for object oriented programming.

Arrays, Java inbuilt Lists, Autoboxing and Unboxing

  • Arrays – Its time to get an overview of Arrays, what they are, and how to use them.
  • Arrays (Challenge Exercise) – Get to know more about Arrays by taking on this challenge exercise.
  • Arrays Recap
  • References Types vs Value Types
  • Minimum Element Challenge
  • Reverse Array Challenge
  • List and ArrayList Part 1 – Get to know the concept of Lists and ArrayList in Java.
  • ArrayList Part 2
  • ArrayList Part 3 – Part 3 of ArrayList
  • ArrayList Challenge Part 1 – ArrayList Challenge Part 1
  • ArrayList Challenge Part 2 – Part 2 of the ArrayList Challenge
  • ArrayList Challenge Part 3 (Free) – Final video of the ArrayList challenge.
  • Bug Fix for ArrayList Challenge
  • Autoboxing and Unboxing – What Autoboxing and Unboxing is.
  • Autoboxing & Unboxing (Challenge Exercise) – Part 1 – Part 1 of the Autoboxing/Unboxing Challenge
  • Autoboxing & Unboxing (Challenge Exercise) – Part 2 – Part 2 of the Autoboxing & Unboxing Challenge.
  • Autoboxing & Unboxing (Challenge Exercise) – Part 3 – Part 3 of the Challenge for Autoboxing and Unboxing
  • LinkedList Part 1 (Free) – Part 1 of the Autoboxing/Unboxing Challenge
  • LinkedList Part 2 – Part 2 of the discussion on about Linked List and to show you examples on using it on Java.
  • LinkedList Part 3 – Part 3 on the discussions of Linked Lists.
  • LinkedList Challenge Part 1 – Now that you have understand Linked List now its time to apply it to a challenge.
  • Bug Fix for “Track 1” Error
  • LinkedList Challenge Part 2 – Continuation of the Linked Lists challenge.
  • LinkedList Challenge Part 3 (Final video) – The Final Part of the Linked Lists challenge.

Inner and Abstract Classes & Interfaces

  • Interfaces – Get the basic understanding about Interfaces in Java.
  • Interfaces Part 2 – Interfaces Part 2
  • Interfaces Challenge Part 1 – Now we have learn about interfaces it is now time to take on the Interface challenge exercise.
  • Interfaces Challenge Part 2 – Part 2 of the Interface challenge exercise.
  • Inner classes Part 1 – Understand the concept of nesting a class within a class with Inner Classes.
  • Inner Classes Part 2 – Continuation of the Inner Classes discussion.
  • Inner Classes Challenge – It is time to put what you have learned with Inner Classes with this challenge.
  • Abstract Classes Part 1 (Free) – Get to know more about Abstraction in this lecture.
  • Abstract Classes Part 2 – Part 2 of the Abstraction discussion, as well as discussions on how it is different to an interface and when to use an interface or an abstract class. And also the challenge for the Abstract Class.
  • Interface vs Abstract Class
  • Abstract Class Challenge Part 1 – Find out the solution to the Abstract Class Challenge that was show in the previous video.
  • Abstract Class Challenge Part 2 – Continuation of the Abstract Class Challenge and also some discussions on the code that were actually typed.
  • Abstract Class Challenge Part 3 (includes recursion). – Final part of the Abstract Class Challenge and also discuss on the differences on the implementation of the add item, remove item, and traverse.

Java Generics

  • Generics Introduction (Free) – Get a basic understanding on Java Generics, what it is? and why should you use them?
  • Our Generics Class – In this lecture we will look at creating our own Generic classes.
  • Our Generics Class Part 2 – Continuation in the creating our own Generics class, and also tackle the problem of making a team only accept a player of a particular type.
  • Our Generics Class Part 3 – Final part of creating our own Generics Class discussion.
  • Generics Challenge – It is now to put all that you have learned from the Generics lectures and put it in this challenge.

Naming Conventions and Packages. static and final keywords

  • Naming Conventions – In this video you will learn all about Naming Conventions and why it is important in Java programming.
  • Packages – Get an understanding on what Packages are and its role in Java programming.
  • Packages Part 2 – Part 2 on the discussion on Packages.
  • Packages Part 3 – Packages Part 3
  • Packages (Challenge Exercise) – Time to test your knowledge about Packages in this challenge exercise.
  • Scope – Have an understanding on Scope as well as granting and restricting access.
  • Scope Part 2 and Visibility – Get to know more about Scope and understand more about Visibility.
  • Scope +(Challenge Exercise) – Its time to put what you have learned with Scope and Visibility in this challenge exercise.
  • Access Modifiers – It is time to talk about access modifiers, in particular private, public, protected as well as package pirvate.
  • The static statement (.free) Get to understand what the static statement keyword actually means and why we used it in particular places.
  • The final statement – Get to know the Final java keyword that is used to define constant values.
  • Final Part 2 and Static Initializers – More discussion on Final keyword statement as well as some Static Initializers.

Naming Conventions and Packages. static and final keywords

  • Collections Overview – Get a better understanding of the Collections Framework.
  • Binary Search – Continuation on the discussions on Collections and the focus now on Binary Search.
  • Collections List Methods – More about the Binary Search and discuss about the Collections List Methods.
  • Comparable and Comparator (Free) – We are now going to look at the other collection types which is Comparable and Comparator.
  • Maps – Discussed about the final issue with the compare method and also start talking about Maps.
  • Map Continued and Adventure Game – Continuation with the lecture on Maps and also stat working on an Adeventure game.
  • Adding Exits to the Adventure game – It is now time to enhance the Adventure game by buidling some Exits.
  • Adventure Game challenge – It is time to go through a challenge that will enhance the Adventure game app.
  • Immutable Classes – Have an understanding in creating Immutable classes and why it is a good technique to use and you would want to apply it.
  • Immutable Class Challenge – Finalize the discussion on Immutable classes and take on the challenge exercise.
  • Sets & HashSet
  • HashSet – equals() and hashCode()
  • Finish off equals() and hashcode()
  • Potential issue with equals() and sub-classing (Free)
  • 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)


  • JDK11 Global Library Configuration
  • JDK11 Global Library Configuration
  • 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 (Free)
  • Events Continued
  • UI Thread
  • Threads and Runnable
  • Setup Sample Todo List Application
  • Base Interface
  • Add Change Listener (Free)
  • 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 (Free)
  • Cell Factories
  • Context Menu (Free)
  • KeyEvents and Toolbars
  • SortedList
  • FilteredList
  • CSS With JavaFX
  • CSS With JavaFX
  • 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

Basic Input & Output including java.util

  • Exceptions
  • Stack Trace and Call Stack
  • Catching and throwing Exceptions
  • Multi Catch Exceptions
  • Introduction to I/O
  • Writing content – FileWriter class and Finally block (Free)
  • 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

Concurrency in Java

  • Concurrency and Threads Introduction
  • Threads
  • Runnable and Thread
  • Interrupt and Join
  • Multiple Threads (Free)
  • Thread Variables
  • Synchronisation
  • 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
  • Deadlocks
  • More on Deadlocks (Free)
  • Thread Starvation
  • Fair Locks and Live Locks
  • Live Lock Example and Slipped Conditions
  • Other Thread Issues
  • JavaFX Background Tasks
  • Data Binding
  • Service
  • 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 (Free)
  • Lambda Expressions Nested Blocks
  • Scope and Functional Programming
  • Functional Interfaces & Predicates
  • More on Predicates & Suppliers
  • Functions
  • Chaining java.util.function Functions
  • Streams
  • 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
  • More on Debugging
  • 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
  • Section Introduction
  • 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


  • 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

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

Archived Videos

  • Old JavaFX Introduction Video for JDK 8 – What is JavaFX? Lets start with an overview of what it is, how to check if its installed, the plugins that are needed, and even the version of the JDK needed for JavaFx. Then we will construct our first JavaFX application.
  • Old JavaFX Code Vs FXml Video for JDK 8 (Free) – Lets expand on the simple application from the previous video. We’ll start with how to add a Label and set various attributes in Java code, and then move on to doing the equivalent in FXML which is the preferred way to deal with GUIs in JavaFx.

Bonus Material

  • Bonus – Please Watch!
  • Check Out My Other 36 Udemy Courses!
  • Source code for all Programs – Download source codes for the lectures in this course.
  • Extending Trial for IntelliJ Ultimate Edition – How to get your extended 90 day trial of IntelliJ Ultimate edition!

Student Reviews

Thank you, Mr, Buchalka for the course. Thank you, Goran for your quick responses and support.
I can imagine how much time and efforts you dedicated to this course. I definitely became more familiar with Java and very happy that I finally passed it.
For whom this course: I think it’s especially perfect for those who already has some knowledge and helps to fill out all gaps.
If you are a total zero, you might quit very fast. But if you are familiar at least little bit with Java and have a very strong wish you may get till the end.

I like:
1. Tim shows how the right code should look and he shows how to write real programs. It’s not that case where you use cats or dogs for examples
2. I like the part about SceneBuilder, SQL, Server, Threads, Debugger

Don’t like:
1. Some explanations would be easier to understand if it had more synonyms or vice verse be more laconic. When you repeat word Object or LinkedList or any other 5-7 times in one sentence despite on you are talking about different “substances”, brain just shuts down, I was rewinding the video, slowing it down, listening it with subtitles, but it just sometimes hard to get the idea. The manner of speech is total the manner of how you write the code)), when for the coding it’s perfect, but for telling sounds overwhelming.

2. I would add more slides with graphics, not with just text, we all understand visualisation better and remember it for longer time.

3. Input/Output and Lambda expressions blocks are very hard to get, because of the paragraph 1.
Definitely recommend to buy this course, you will get a lot of, even if you don’t get some themes, you always may come back here later and watch it again.
Ana Gudkov

You’re giving concrete examples of code and what the code does, which is how I learn best. Thanks for helping me out!
Travis McQueen

The instructor does an excellent job of explaining difficult material. The addition of challenging coding exercises was great. I highly recommend Mr. Buchalka.
Lawrence McKenny

Move A Wordpress Website from Local to Live
Top 20 React Video Course Tutorials.
The 20 Best JavaScript Video Courses on the Internet

You Might also Like

Leave a Comment

Your email address will not be published. Required fields are marked *