4.58 (131569 reviews)
☑ Learn the core Java skills needed to apply for Java developer positions in just 14 hours.
☑ Be able to sit for and pass the Oracle Java Certificate exam if you choose.
☑ Be able to demonstrate your understanding of Java to future employers.
☑ Learn industry "best practices" in Java software development from a professional Java developer who has worked in the language for 18 years.
☑ Acquire essential java basics for transitioning to the Spring Framework, Java EE, Android development and more.
☑ Obtain proficiency in Java 8 and Java 11.
You’ve just stumbled upon the most complete, in-depth Java programming course online. With over 480,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 successful in getting their first job or 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 80 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 the 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 1990s 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 that's not necessarily the case with Java.
Until recently Java releases were infrequent (one major release in 3 years was common). Companies were standardized 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 that's 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 part 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 480,000 students who are already enrolled in the course.
There are well over 100,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. 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)
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 of 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 a 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 counterproductive - you could 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?
Enroll 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!)
Introduction To The Course
Remaster in Progress
How to Get Help
Important Tip - Source Code
Software Tools Setup
Biggest Tip to Succeed as a Java Programmer
Being Persistent and the Four Stages of Becoming a Programmer videos
Software Tools Introduction
Java Development Kit Installation Overview
Install JDK 11 for Windows
Installing Intellij IDEA for Windows
Install JDK 11 for Mac
Installing Intellij IDEA for Mac
Install JDK 11 for Linux
Installing Intellij IDEA for Linux
Configure IntelliJ IDEA
Hello World Project
Defining the Main Method
Hello World Challenge and Common Errors
Starting out with Expressions
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
Logical and Operator
Logical OR Operator
Assignment Operator VS Equals to Operator
Operator Precedence and Operator Challenge
First Steps Summary
End of Remaster
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
Coding Exercises Example Part 1
Coding Exercises Example Part 2
Coding Exercises Example Part 3
Leap Year Calculator
Equal Sum Checker
Teen Number Checker
Method Overloading Recap
Seconds and Minutes Challenge
Bonus Challenge Solution
Minutes To Years and Days Calculator
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
The while and do while statements (+Challenge Exercise)
While and Do While Recap
Digit Sum Challenge
First And Last Digit Sum
Even Digit Sum
Last Digit Checker
Greatest Common Divisor
Number To Words
Parsing Values from a String
Flour Pack Problem
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)
Carpet Cost Calculator
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)
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).
Our Generics Class
Our Generics Class Part 2
Our Generics Class Part 3
Naming Conventions and Packages. static and final keywords
Packages Part 2
Packages Part 3
Packages (Challenge Exercise)
Scope Part 2 and Visibility
Scope +(Challenge Exercise)
The static statement
The final statement
Final Part 2 and Static Initializers
Collections List Methods
Comparable and Comparator
Map Continued and Adventure Game
Adding Exits to the Adventure game
Adventure Game challenge
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
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
Create Your First JavaFX Project
JavaFX Hello World Program
RadioButton and CheckBox
ComboBox and ChoiceBox
Slider, Spinner, ColorPicker & DatePicker Controls
Events and Event Handlers
Threads and Runnable
Setup Sample Todo List Application
Add Change Listener
Load and Save ToDo Items from/to Disk
Show Dialog and Add Controller Code
Bug Fix and Update List View
Data Binding and Observable
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 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
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
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
FileChannel to Copy Files and Pipes with Threads
More on Paths
Exists and CopyFile
Move, Rename and Delete
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
Producer and Consumer
Deadlocks, wait, notify and notifyAll methods
The Java Util Concurrent package
Reentrant Lock and Unlock
Using Try Finally With Threads
More on Deadlocks
Fair Locks and Live Locks
Live Lock Example and Slipped Conditions
Other Thread Issues
JavaFX Background Tasks
Challenge 1 and 2
Challenge 3,4 and 5
Challenge 6 and 7
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 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
Introduction to Unit Testing with JUnit
Asserts in Junit
More Asserts and Exception Handling
JUnit Challenge #1 and #2
JUnit Challenges #3 to #7
Junit Challenges #8 to #10
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
Fix Artist and Preload Records
Implement Artist Query
Java Networking Programming
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
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)
Course Remaster in Progress
Work in Progress
Keywords and Naming Conventions
Naming Conventions Challenge
Declaration and Expression Statements
Expression Statements, Prefix and Postfix
Code Blocks and Indentation
Code Blocks and if, then, and else
Boolean, Naming Conventions and Scope
Challenge and Code Duplication
Method Parameters Overview
Removing Code Duplication
Returning Data from a Method
Using Data from a Method Call
Method Recap and Challenge
Method Challenge Solution
Old JavaFX Introduction Video for JDK 8
Old JavaFX Code Vs FXml Video for JDK 8
Extra Information - Source code, and other stuff
Source code for all Programs
Bonus Lecture and Information
Very clear introductory videos. A lot of time, thought, and effort has clearly gone into creating this course. Looking forward to getting starting!
This has been great. It has been 12 years since I worked as a Software Engineer and I am using this as a refresher as I prepare to interview again. A lot has changed from the functional programming I used to do. This has been a thorough way for more the come up to speed on things that I have missed.
This is teaching me better than my own college course, thanks for making this, the little challenges so far really help me to rewire my brain to make an appropriate algorithm. This is absolutely helping me understand my school projects more because it is is bite size pieces. Doing little programmes along the way leads to bigger concepts, it is definetely worth the money
Absolutely Amazing! This course is very well constructed, in-depth explanation of topics with examples and interesting challenges. Each of the topics are covered in detail and very clearly in an easily understandable manner. The industry best practices are also mentioned from time to time. Overall, I am very happy that I have enrolled and completed this course. It was a fun and interesting learning experience.
I totally understand sir's accent and I really appreciate his hardwork done in every lectures seen by me till now and i am loving it :)
The perfect amount of detail for beginners - intermediates who want to dive into the Java programming language. The frequent examples and simple English explanations of the underlying concepts are especially useful. I'm also very happy to see the course author has decided for JavaFX over Swing with guis; even if it's not packaged with core Java anymore, I do find it provides more modern-looking menus!
Tim gives very clear and concise instructions, which is what I need as a beginner to master this programming language.
I have 11 years,in 28 feb is my bday and ill be 12.Its my moms account.:)And i can understand some things,its very cool.I want to be a programmer
I have previous experience with the basics of java, so, so far I have not learned anything new. However, I must say that the structure and the way in which the concepts are explained so far, are very well done!
It should include more basics rather than just talking about the programming. For practice it is very good and i recommend to all.
It's really really a good course for everyone to learn.... Thanks Mr. Tim Buchalka Sir
A very good course for people starting with Java or who want to land a programming gig of their own. While I wouldn't recommend it if you're an advanced Java developer with a couple years of experience, anything less than that will certainly be of use for everyone. Clear organization of the course and explanations make for a solid learning experience.
Excellent teaching technique! Please let me know which video is teaching SCANNER? I couldn't find it! Thanks
Well I started this course as my first online udemy course, I have not expected this much of improvement just by online tutoring without interaction with student, So far I am doing great in this course, very helpful content and teaching to improve your programming skills, kudos to you sir.
Tim's expertise, as well as his voice, make the prospect of learning Java a more than pleasurable activity!