Java Programming Masterclass for Software Developers

Java Programming Masterclass for Software Developers
Java Programming Masterclass for Software Developers
English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 77.5 Hours | 37.0 GB

Learn Java In This Course And Become a Computer Programmer. Obtain valuable Core Java Skills And Java Certification

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

Table of Contents

Course Introduction
1 Introduction To The Course

Setup and First Steps
2 Playing Videos In The Highest Quality
3 Working With Subtitles
4 Getting Support
5 Overview of Software
6 Which Version Of Java?
7 Installing JDK 11 on Windows
8 Installing and Configuring IntelliJ IDEA on Windows
9 Installing JDK 11 on a Mac
10 Installing and Configuring IntelliJ IDEA on a Mac
11 Installing JDK 11 on a Linux Machine
12 Installing and Configuring IntelliJ IDEA on a Linux Machine
13 First Steps – Creating your first Java Program
14 Exploring IntelliJ IDEA

Variables, Datatypes and Operators
15 Your Programming Careers Questions Answered
16 Access to Programming Career Q&A
17 Introduction
18 What Are Variables?
19 Getting To Know Primitive Data Types – The Byte, Short, Int And Long
20 Getting To Know Primitive Data Types – Float And Double
21 Getting To Know Primitive Data Types – Char And Boolean
22 Understanding Strings And Finishing Up Primitive Data Types
23 Operators In Java
24 More On Operators And Operator Precedence

Java Tutorial: Expressions, Statements, Code blocks, Methods and more
25 Introduction
26 Keywords And Expressions
27 Statements, Whitespace and Indentation (Code Organization)
28 Code Blocks And The If Then Else Control Statements
29 if then else Recap
30 Methods In Java
31 More On Methods And A Challenge
32 Method Challenge – Final Code Changes
33 DiffMerge Tool Introduction
34 Install DiffMerge
35 Using DiffMerge
36 Coding Exercises
37 Coding Exercises Example Part 1
38 Coding Exercises Example Part 2
39 Coding Exercises Example Part 3
40 Method Overloading
41 Method Overloading Recap
42 Seconds and Minutes Challenge
43 Bonus Challenge Solution

Control Flow Statements
44 Introduction
45 The switch statement (+Challenge Exercise)
46 Day of the Week Challenge
47 The for Statement (+Challenge Exercise)
48 For Loop Recap
49 Sum 3 and 5 Challenge
50 The while and do while statements (+Challenge Exercise)
51 While and Do While Recap
52 Digit Sum Challenge
53 Parsing Values from a String
54 Reading User Input
55 Problems and Solutions
56 Reading User Input Challenge
57 Min and Max Challenge

OOP Part 1 – Classes, Constructors and Inheritance
58 Introduction
59 Classes Part 1
60 Classes Part 2
61 Constructors – Part 1 (+Challenge Exercise)
62 Constructors – Part 2 (+Challenge Exercise)
63 Inheritance – Part 1
64 Inheritance – Part 2
65 Reference vs Object vs Instance vs Class
66 this vs super
67 Method Overloading vs Overriding Recap
68 Static vs Instance Methods
69 Static vs Instance Variables
70 Inheritance Challenge Part 1 (+Challenge Exercise)
71 Inheritance Challenge Part 2

OOP Part 2 – Composition, Encapsulation, and Polymorphism
72 Introduction
73 Composition
74 Composition Part 2 (+Challenge Exercise)
75 Encapsulation
76 Encapsulation (+Challenge Exercise)
77 Polymorphism
78 Polymorphism (+Challenge Exercise)
79 OOP Master Challenge Exercise
80 OOP Challenge – Solution

Arrays, Java inbuilt Lists, Autoboxing and Unboxing
81 Arrays
82 Arrays (Challenge Exercise)
83 Arrays Recap
84 References Types vs Value Types
85 Minimum Element Challenge
86 Reverse Array Challenge
87 List and ArrayList Part 1
88 ArrayList Part 2
89 ArrayList Part 3
90 ArrayList Challenge Part 1
91 ArrayList Challenge Part 2
92 ArrayList Challenge Part 3
93 Bug Fix for ArrayList Challenge
94 Autoboxing and Unboxing
95 Autoboxing & Unboxing (Challenge Exercise) – Part 1
96 Autoboxing & Unboxing (Challenge Exercise) – Part 2
97 Autoboxing & Unboxing (Challenge Exercise) – Part 3
98 LinkedList Part 1
99 LinkedList Part 2
100 LinkedList Part 3
101 LinkedList Challenge Part 1
102 Bug Fix for “Track 1” Error
103 LinkedList Challenge Part 2
104 LinkedList Challenge Part 3 (Final video)

Inner and Abstract Classes & Interfaces
105 Interfaces
106 Interfaces Part 2
107 Interfaces Challenge Part 1
108 Interfaces Challenge Part 2
109 Inner classes Part 1
110 Inner Classes Part 2
111 Inner Classes Challenge
112 Abstract Classes Part 1
113 Abstract Classes Part 2
114 Interface vs Abstract Class
115 Abstract Class Challenge Part 1
116 Abstract Class Challenge Part 2
117 Abstract Class Challenge Part 3 (includes recursion).

Java Generics
118 Generics Introduction
119 Our Generics Class
120 Our Generics Class Part 2
121 Our Generics Class Part 3
122 Generics Challenge

Naming Conventions and Packages. static and final keywords
123 Naming Conventions
124 Packages
125 Packages Part 2
126 Packages Part 3
127 Packages (Challenge Exercise)
128 Scope
129 Scope Part 2 and Visibility
130 Scope +(Challenge Exercise)
131 Access Modifiers
132 The static statement
133 The final statement
134 Final Part 2 and Static Initializers

Java Collections
135 Collections Overview
136 Binary Search
137 Collections List Methods
138 Comparable and Comparator
139 Maps
140 Map Continued and Adventure Game
141 Adding Exits to the Adventure game
142 Adventure Game challenge
143 Immutable Classes
144 Immutable Class Challenge
145 Sets & HashSet
146 HashSet – equals() and hashCode()
147 Finish off equals() and hashcode()
148 Potential issue with equals() and sub-classing
149 Sets – Symmetric & Asymmetric
150 Finishing Off Sets
151 Sets Challenge Part 1
152 Sets Challenge Part 2
153 Sets Challenge Part 3
154 Sorted Collections
155 StockList Class With Maps
156 Add a Basket
157 TreeMap and Unmodifiable Maps
158 Challenge Part 1
159 Challenge Part 2
160 Challenge Part 3
161 Challenge Part 4 (Final)

162 JDK11 Global Library Configuration
163 Create Your First JavaFX Project
164 JavaFX Overview
165 JavaFX Hello World Program
166 GridPane Layout
167 HBox Layout
168 BorderPane Layout
169 Other Layouts
170 Controls
171 RadioButton and CheckBox
172 ComboBox and ChoiceBox
173 Slider, Spinner, ColorPicker & DatePicker Controls
174 TitledPane
175 Events and Event Handlers
176 Events Continued
177 UI Thread
178 Threads and Runnable
179 Setup Sample Todo List Application
180 Base Interface
181 Add Change Listener
182 Formatting Dates
183 Singletons
184 Load and Save ToDo Items from/to Disk
185 Add DialogPane
186 Show Dialog and Add Controller Code
187 Bug Fix and Update List View
188 Data Binding and Observable
189 Cell Factories
190 Context Menu
191 KeyEvents and Toolbars
192 SortedList
193 FilteredList
194 CSS With JavaFX
195 Transforming Nodes and Choosers
196 More on Choosers and Web Pages
197 SceneBuilder
198 Installing SceneBuilder for Windows
199 Installing SceneBuilder for Mac
200 Overview of SceneBuilder
201 Building a UI with SceneBuilder
202 More on SceneBuilder
203 JavaFX Challenge
204 JavaFX Challenge Part 2
205 JavaFX Challenge Part 3
206 JavaFX Challenge Part 4
207 JavaFX Challenge Wrap up

Basic Input & Output including java.util
208 Exceptions
209 Stack Trace and Call Stack
210 Catching and throwing Exceptions
211 Multi Catch Exceptions
212 Introduction to I/O
213 Writing content – FileWriter class and Finally block
214 Try with Resources
215 FileReader and Closeable
216 BufferedReader
217 Load Big Location and Exits Files
218 Challenge
219 Buffered Writer and Challenge
220 Byte Streams
221 Reading Binary Data and End of File Exceptions
222 Object Input Output including Serialization
223 Finish Object I/O and RandomAccessFile class
224 Create Random Access File
225 Update Static Initializer Block With Random File Access
226 Update Adventure Game to Read Random Access File
227 Java NIO
228 Writing Objects With Java NIO
229 Reading and Writing with Java NIO
230 Writing Binary Files with Java NIO
231 Reading Files with NIO
232 Absolute and Relative Reads
233 Chained Put Methods
234 Writing Sequentially
235 FileChannel to Copy Files and Pipes with Threads
236 Filesystem
237 More on Paths
238 Exists and CopyFile
239 Move, Rename and Delete
240 File Attributes
241 Read Existing Directory Contents
242 Separators Temp Files and File Stores
243 Walk File Tree
244 Copy Entire Tree
245 Mapping IO and NIO Methods

Concurrency in Java
246 Concurrency and Threads Introduction
247 Threads
248 Runnable and Thread
249 Interrupt and Join
250 Multiple Threads
251 Thread Variables
252 Synchronisation
253 Producer and Consumer
254 Deadlocks, wait, notify and notifyAll methods
255 The Java Util Concurrent package
256 Thread Interference
257 Reentrant Lock and Unlock
258 Using Try Finally With Threads
259 Thread Pools
260 ArrayBlockingQueue Class
261 Deadlocks
262 More on Deadlocks
263 Thread Starvation
264 Fair Locks and Live Locks
265 Live Lock Example and Slipped Conditions
266 Other Thread Issues
267 JavaFX Background Tasks
268 Data Binding
269 Service
270 Challenge 1 and 2
271 Challenge 3,4 and 5
272 Challenge 6 and 7
273 Challenge 8
274 Challenge 9

Lambda Expressions
275 Lambda Expressions Introduction
276 Lambda Expressions Continued
277 Lambda Expressions Nested Blocks
278 Scope and Functional Programming
279 Functional Interfaces & Predicates
280 More on Predicates & Suppliers
281 Functions
282 Chaining java.util.function Functions
283 Streams
284 Streams – Intermediate and Terminal Operations
285 Streams – Flatmap & Lambda Best Practices
286 Lambda Challenge Part 1
287 Lambda Challenge Part 2

Regular Expressions
288 Regular Expressions Introduction
289 Character classes and Boundary Matchers
290 Quantifiers and the Pattern and Matcher classes
291 Matcher find and Group Methods
292 And, Or & Not
293 Regular Expressions Challenge Part 1
294 Regular Expressions Challenge Part 2
295 Regular Expressions Challenge Part 3

Debugging and Unit Testing
296 Introduction to Debugging
297 More on Debugging
298 Field Watch Points
299 Advanced Debugging
300 Introduction to Unit Testing with JUnit
301 Asserts in Junit
302 More Asserts and Exception Handling
303 Parameterized Testing
304 JUnit Challenge #1 and #2
305 JUnit Challenges #3 to #7
306 Junit Challenges #8 to #10

307 Section Introduction
308 Database Terminology
309 Install and Setup SQLite for Windows
310 Install and Setup SQLite for Mac
311 Install and Setup SQLite for Linux
312 Introduction to SQLite
313 More with SQLite
314 Querying Data With SQL
315 SQL Order by and Joins
316 More Complex Joins
317 Wildcards in Queries and Views
318 Housekeeping and Final SQL Challenge
319 JDBC and SQLite GUI Browser
320 Creating Databases With JDBC in Java
321 JDBC Insert, Update, Delete
322 .executeQuery() and using Constants
323 The Music SQLite Database
324 Write Java Query for Artists
325 Executing SQL in DB Browser
326 Query Albums by Artist Method
327 Query Artists for Song method
328 Result Set Meta Data
329 Functions and Views
330 Write the Method to Query View
331 SQL Injection Attacks and Prepared Statements
332 Transactions
333 Inserting Records With JDBC
334 Insert Albums, Artists, and Songs
335 Test Insert JDBC Code
336 JDBC with a GUI Program
337 Add Artists
338 Fix Artist and Preload Records
339 Implement Artist Query
340 Add ProgressBar
341 Handling Updates

Java Networking Programming
342 Networking Overview
343 First Client and Server Apps
344 Multi Threaded Server
345 Multi-Threading and Timeouts
346 UDP Server and Client
347 High Level APIS
348 URL Connections and Input Stream Reader
349 HTTPUrlConnection
350 Alternatives to HTTPUrlConnection

Java 9 Module System
351 Introduction to Modules
352 Module Declarations and Statements
353 Module Types

Migrating Java Projects to Java 9
354 Project Setup and Test
355 Structuring the new project
356 Creating the first module (Common)
357 Creating the Module Descriptor file
358 Creating the 2nd module (Database)
359 Challenge – Create the final module (UI)
360 Transitive Dependencies

Archived Videos
361 Old JavaFX Introduction Video for JDK 8
362 Old JavaFX Code Vs FXml Video for JDK 8

Bonus Material
363 Bonus – Please Watch!
364 Check Out My Other 36 Udemy Courses!
365 Source code for all Programs
366 Extending Trial for IntelliJ Ultimate Edition