Hackr.io is a community to find and share the best online courses & tutorials. Join them, it only takes 30 seconds.
Anybody can submit a course or a tutorial
Community upvotes the useful tutorials
The best tutorials rise to the top
Join just under 200,000 students just like you who’re having massive success with their Java 8 and Java 9 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 9 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 9 programming course online. With close to 200,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 9 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 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 9 / 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?
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 9 has rolled out, 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!)
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
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
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)
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)
Code Vs FXml
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)
Bonus - Please Watch!
Source code for all Programs