Java Programming Masterclass updated to Java 17
Learn Java In This Course And Become a Computer Programmer. Obtain valuable Core Java Skills And Java Certification
What you will learn?
- 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.
Your trainer
Tim Buchalka
Tim's been a professional software developer for over 35 years. During his career, he has worked for major companies such as Fujitsu, Mitsubishi, and Saab. His video courses are used to train developers in major companies such as Mercedes-Benz, Paypal, VW, Pitney Bowes, IBM, and T-Mobile just to name a few (via the Udemy for Business program). What makes Tim unique is his professional programming career - many instructors have never programmed professionally, let alone had a distinguished professional development career like Tim. Tim has trained over 812,000 students how to program, way more than a typical IT Professor at a college does in a lifetime. In fact, Tim's courses are often purchased by students struggling to get through college programming courses.
517 lessons
Easy to follow lectures and videos covering subject details.
98.5 hours
This course includes hours of video material. Watch on-demand, anytime, anywhere.
Certificate of Completion
You will earn a Certificate of Completion at the end of this course.
Course curriculum
- Introduction To The Course01:46
- Remaster in Progress00:48
- Video Quality00:49
- Subtitles02:18
- How to Get Help03:44
- Important Tip - Source Code02:05
- Biggest Tip to Succeed as a Java Programmer01:08
- Software Tools Introduction01:18
- Which Version of Java?02:37
- Install JDK 17 for Windows03:01
- Install JDK 11 for Mac02:38
- Install JDK 11 for Linux02:06
- Confirming installation and intro to JShell10:44
- Hello World09:46
- Variables16:05
- Starting out with Expressions09:33
- Primitive Types16:33
- byte, short, long and width13:13
- Casting in Java09:29
- Primitive Types Challenge06:13
- Float and Double Primitives10:27
- Floating Point Precision and a Challenge12:00
- The char and boolean Primitive Data Types12:12
- Primitive Types Recap and the String Data Type17:37
- Operators, Operands and Expressions12:04
- Abbreviating Operators14:04
- From JShell to an IDE02:26
- Installing IntelliJ IDEA for Windows02:37
- Installing IntelliJ IDEA for Mac02:45
- Installing IntelliJ IDEA for Linux02:24
- Configuring IntelliJ IDEA - WINDOWS, MAC and LINUX06:29
- Hello World in IntelliJ07:33
- Hello World in IntelliJ11:39
- if-then Statement08:22
- Logical AND Operator07:12
- Logical OR Operator04:45
- Assignment Operator VS Equals to Operator07:39
- Ternary Operator06:20
- Operator Precedence and Operator Challenge11:27
- Introduction00:35
- Keywords and Expressions09:57
- Statements, Whitespace and Indentation (Code Organization)09:49
- Code Blocks And The If Then Else Control Statement10:22
- if then else Challenge10:54
- Methods in Java14:00
- More on Methods10:21
- Methods Recap07:21
- Method Challenge13:13
- Code Comparison in IntelliJ06:45
- Coding Exercises16:05
- Method Overloading14:17
- Method Overloading Challenge09:46
- Seconds And Minutes Challenge12:51
- Bonus Challenge Solution10:14
- Introduction00:56
- The switch statement12:12
- More switch statement13:10
- Traditional Switch Challenge06:54
- A Switch Expression Challenge11:32
- The for Statement14:00
- The for Statement Challenge Exercise16:16
- Sum 3 and 5 Challenge And Using IntelliJ's Debugger17:20
- For Loop Recap09:09
- The while and do while statements12:26
- The while Loop Challenge Exercise11:36
- Digit Sum Challenge10:21
- While Loop and Do While Recap08:56
- Local Variables and Scope05:45
- The class, the object, static & instance fields and methods07:18
- Parsing Values and Reading Input using System.console()14:02
- Exception Handling, and Introduction to Scanner11:54
- Reading Input with Scanner09:36
- Reading User Input Challenge11:57
- Min and Max Challenge09:44
- Introduction00:52
- Introduction to Classes and Objects13:36
- Introduction to Classes, Using Getter Methods09:36
- Classes, Using Setters, and Creating Objects13:24
- Classes Challenge Exercise11:59
- Constructors Part 108:40
- Constructors Part 210:48
- Constructor Challenge Exercise09:59
- Reference vs Object vs Instance vs Class08:52
- Static vs Instance Variables04:33
- Static vs Instance Methods04:43
- The POJO10:25
- Java's Implicit POJO Type, The Record11:42
- Inheritance - Part 113:56
- Inheritance - Part 212:26
- Inheritance - Part 312:36
- What is java.lang.Object?13:26
- Inheritance Challenge - Part 112:52
- Inheritance Challenge Part 211:52
- this vs super05:54
- Method Overloading vs Overriding Recap08:36
- The Text Block and other Formatting Options13:29
- Another Look at the String13:41
- String Manipulation Methods13:53
- The StringBuilder class14:01
- Introduction00:43
- Composition Part 111:30
- Composition Part 212:47
- Composition Challenge12:18
- Encapsulation, Part 112:29
- Encapsulation, Part 210:05
- Encapsulation Challenge11:15
- Polymorphism, Part 111:05
- Polymorphism, Part 215:23
- Casting with classes, and using Object and var references11:45
- Testing the runtime type using the instanceof operator06:36
- Polymorphism Challenge Exercise11:07
- Polymorphism Challenge Exercise, Part 208:04
- OOP Master Challenge Exercise, Part 113:33
- OOP Master Challenge Exercise, Part 219:25
- OOP Master Challenge Exercise, The Bonus10:56
- Organizing Java Classes, Packages and Import Statements10:40
- Arrays21:27
- Arrays (Challenge Exercise)16:20
- Sorted Array1 question
- Arrays Recap07:19
- References Types vs Value Types16:13
- Minimum Element Challenge11:51
- Minimum Element1 question
- Reverse Array Challenge10:31
- Reverse Array1 question
- List and ArrayList Part 116:29
- ArrayList Part 220:11
- ArrayList Part 316:48
- ArrayList Challenge Part 114:00
- ArrayList Challenge Part 218:12
- ArrayList Challenge Part 310:49
- Bug Fix for ArrayList Challenge06:41
- Mobile Phone1 question
- Autoboxing and Unboxing16:16
- Autoboxing & Unboxing (Challenge Exercise) - Part 116:49
- Autoboxing & Unboxing (Challenge Exercise) - Part 217:08
- Autoboxing & Unboxing (Challenge Exercise) - Part 309:32
- Banking1 question
- LinkedList Part 116:43
- LinkedList Part 215:30
- LinkedList Part 320:46
- LinkedList Challenge Part 115:05
- Bug Fix for "Track 1" Error01:03
- LinkedList Challenge Part 217:20
- LinkedList Challenge Part 3 (Final video)15:45
- Playlist1 question
- Interfaces12:34
- Interfaces Part 214:30
- Interfaces Challenge Part 118:11
- Interfaces Challenge Part 209:00
- Interface1 question
- Inner classes Part 117:10
- Inner Classes Part 214:45
- Inner Classes Challenge11:57
- Playlist - Inner Class1 question
- Abstract Classes Part 116:42
- Abstract Classes Part 210:55
- Interface vs Abstract Class04:48
- Abstract Class Challenge Part 119:46
- Abstract Class Challenge Part 212:53
- Abstract Class Challenge Part 3 (includes recursion).19:46
- Abstract Class1 question
- Generics Introduction11:12
- Our Generics Class11:37
- Our Generics Class Part 218:57
- Our Generics Class Part 310:13
- Generics Challenge13:08
- Naming Conventions07:09
- Packages17:40
- Packages Part 211:40
- Packages Part 312:05
- Packages (Challenge Exercise)13:28
- Scope17:25
- Scope Part 2 and Visibility12:07
- Scope +(Challenge Exercise)06:53
- Access Modifiers16:51
- The static statement12:32
- The final statement14:37
- Final Part 2 and Static Initializers09:01
- Collections Overview15:47
- Binary Search15:39
- Collections List Methods18:23
- Comparable and Comparator18:55
- Maps16:51
- Map Continued and Adventure Game16:33
- Adding Exits to the Adventure game18:04
- Adventure Game challenge08:13
- Adventure Game1 question
- Immutable Classes15:42
- Immutable Class Challenge04:32
- Immutable Class1 question
- Sets & HashSet19:52
- HashSet - equals() and hashCode()16:52
- Finish off equals() and hashcode()10:56
- Potential issue with equals() and sub-classing11:59
- Sets - Symmetric & Asymmetric15:34
- Finishing Off Sets09:16
- Sets Challenge Part 115:26
- Sets Challenge Part 212:50
- Sets Challenge Part 318:17
- Sets1 question
- Sorted Collections13:11
- StockList Class With Maps17:05
- Add a Basket15:49
- TreeMap and Unmodifiable Maps20:50
- Challenge Part 112:40
- Challenge Part 210:52
- Challenge Part 307:56
- Challenge Part 4 (Final)18:04
- JDK11 Global Library Configuration05:05
- Create Your First JavaFX Project06:00
- JavaFX Overview09:48
- JavaFX Hello World Program10:55
- GridPane Layout15:34
- HBox Layout13:11
- BorderPane Layout13:16
- Other Layouts17:09
- Controls15:17
- RadioButton and CheckBox17:02
- ComboBox and ChoiceBox17:13
- Slider, Spinner, ColorPicker & DatePicker Controls14:30
- TitledPane06:42
- Events and Event Handlers14:29
- Events Continued14:38
- UI Thread14:40
- Threads and Runnable16:17
- Setup Sample Todo List Application12:59
- Base Interface13:28
- Add Change Listener14:17
- Formatting Dates07:03
- Singletons15:04
- Load and Save ToDo Items from/to Disk16:25
- Add DialogPane16:31
- Show Dialog and Add Controller Code14:33
- Bug Fix and Update List View10:27
- Data Binding and Observable11:20
- Cell Factories14:44
- Context Menu15:37
- KeyEvents and Toolbars15:41
- SortedList12:44
- FilteredList16:18
- CSS With JavaFX17:39
- Transforming Nodes and Choosers16:37
- More on Choosers and Web Pages22:11
- SceneBuilder03:23
- Installing SceneBuilder for Windows05:00
- Installing SceneBuilder for Mac03:39
- Overview of SceneBuilder07:15
- Building a UI with SceneBuilder15:49
- More on SceneBuilder17:27
- JavaFX Challenge15:14
- JavaFX Challenge Part 213:16
- JavaFX Challenge Part 316:07
- JavaFX Challenge Part 414:02
- JavaFX Challenge Wrap up09:15
- Exceptions14:00
- Stack Trace and Call Stack13:04
- Catching and throwing Exceptions14:20
- Multi Catch Exceptions08:06
- Introduction to I/O15:55
- Writing content - FileWriter class and Finally block14:57
- Try with Resources12:12
- FileReader and Closeable12:55
- BufferedReader12:59
- Load Big Location and Exits Files07:29
- Challenge05:01
- Buffered Writer and Challenge13:11
- Byte Streams15:45
- Reading Binary Data and End of File Exceptions15:44
- Object Input Output including Serialization14:15
- Finish Object I/O and RandomAccessFile class16:03
- Create Random Access File14:29
- Update Static Initializer Block With Random File Access11:37
- Update Adventure Game to Read Random Access File14:20
- Java NIO14:47
- Writing Objects With Java NIO11:36
- Reading and Writing with Java NIO15:47
- Writing Binary Files with Java NIO13:36
- Reading Files with NIO15:47
- Absolute and Relative Reads11:10
- Chained Put Methods13:55
- Writing Sequentially13:04
- FileChannel to Copy Files and Pipes with Threads15:04
- Filesystem18:02
- More on Paths12:17
- Exists and CopyFile11:59
- Move, Rename and Delete11:16
- File Attributes12:50
- Read Existing Directory Contents14:15
- Separators Temp Files and File Stores12:25
- Walk File Tree11:33
- Copy Entire Tree12:58
- Mapping IO and NIO Methods12:53
- Concurrency and Threads Introduction06:59
- Threads13:32
- Runnable and Thread13:19
- Interrupt and Join09:44
- Multiple Threads11:52
- Thread Variables09:53
- Synchronisation11:05
- Producer and Consumer10:55
- Deadlocks, wait, notify and notifyAll methods14:05
- The Java Util Concurrent package12:09
- Thread Interference11:15
- Reentrant Lock and Unlock10:28
- Using Try Finally With Threads10:36
- Thread Pools12:03
- ArrayBlockingQueue Class12:29
- Deadlocks10:34
- More on Deadlocks14:06
- Thread Starvation16:47
- Fair Locks and Live Locks12:55
- Live Lock Example and Slipped Conditions05:04
- Other Thread Issues14:04
- JavaFX Background Tasks15:25
- Data Binding10:16
- Service14:34
- Challenge 1 and 209:09
- Challenge 3,4 and 511:15
- Challenge 6 and 711:00
- Challenge 805:30
- Challenge 904:53
- Lambda Expressions Introduction15:33
- Lambda Expressions Continued14:50
- Lambda Expressions Nested Blocks14:45
- Scope and Functional Programming15:02
- Functional Interfaces & Predicates16:38
- More on Predicates & Suppliers12:06
- Functions13:11
- Chaining java.util.function Functions11:56
- Streams13:50
- Streams - Intermediate and Terminal Operations13:06
- Streams - Flatmap & Lambda Best Practices21:30
- Lambda Challenge Part 112:07
- Lambda Challenge Part 216:33
- Regular Expressions Introduction16:21
- Character classes and Boundary Matchers13:55
- Quantifiers and the Pattern and Matcher classes14:42
- Matcher find and Group Methods15:03
- And, Or & Not15:26
- Regular Expressions Challenge Part 117:04
- Regular Expressions Challenge Part 215:30
- Regular Expressions Challenge Part 306:13
- Introduction to Debugging17:57
- More on Debugging11:24
- Field Watch Points16:14
- Advanced Debugging10:14
- Introduction to Unit Testing with JUnit16:20
- Asserts in Junit18:19
- More Asserts and Exception Handling16:34
- Parameterized Testing12:21
- JUnit Challenge #1 and #221:41
- JUnit Challenges #3 to #712:22
- Junit Challenges #8 to #1012:06
- Section Introduction01:55
- Database Terminology10:32
- Install and Setup SQLite for Windows07:56
- Install and Setup SQLite for Mac02:00
- Install and Setup SQLite for Linux02:38
- Introduction to SQLite11:15
- More with SQLite10:42
- Querying Data With SQL16:02
- SQL Order by and Joins13:11
- More Complex Joins11:44
- Wildcards in Queries and Views15:17
- Housekeeping and Final SQL Challenge14:17
- JDBC and SQLite GUI Browser15:49
- Creating Databases With JDBC in Java17:26
- JDBC Insert, Update, Delete15:49
- .executeQuery() and using Constants20:39
- The Music SQLite Database12:43
- Write Java Query for Artists14:46
- Executing SQL in DB Browser17:18
- Query Albums by Artist Method16:23
- Query Artists for Song method15:03
- Result Set Meta Data14:38
- Functions and Views16:38
- Write the Method to Query View11:48
- SQL Injection Attacks and Prepared Statements17:01
- Transactions13:40
- Inserting Records With JDBC10:08
- Insert Albums, Artists, and Songs14:00
- Test Insert JDBC Code18:07
- JDBC with a GUI Program17:53
- Add Artists12:35
- Fix Artist and Preload Records13:24
- Implement Artist Query11:57
- Add ProgressBar09:38
- Handling Updates15:14
- Networking Overview09:39
- First Client and Server Apps15:02
- Multi Threaded Server14:04
- Multi-Threading and Timeouts12:46
- UDP Server and Client18:13
- High Level APIS18:55
- URL Connections and Input Stream Reader16:06
- HTTPUrlConnection17:57
- Alternatives to HTTPUrlConnection21:06
- Introduction to Modules06:21
- Module Declarations and Statements02:08
- Module Types05:39
- Project Setup and Test07:23
- Structuring the new project04:01
- Creating the first module (Common)12:04
- Creating the Module Descriptor file13:25
- Creating the 2nd module (Database)10:44
- Challenge - Create the final module (UI)09:52
- Transitive Dependencies07:29
- Introduction To The Course02:27
- Remaster in Progress03:09
- Video Quality01:16
- Subtitles02:46
- How to Get Help04:54
- Important Tip - Source Code02:07
- Biggest Tip to Succeed as a Java Programmer01:15
- The Four Stages of Becoming a Programmer00:42
- Software Tools Introduction01:12
- Java Development Kit Installation Overview01:42
- Install JDK 11 for Windows02:47
- Installing Intellij IDEA for Windows06:35
- ** IMPORTANT ** - Configuring IntelliJ IDEA00:16
- Install JDK 11 for Mac02:11
- Installing Intellij IDEA for Mac04:57
- Install JDK 11 for Linux04:33
- Installing Intellij IDEA for Linux05:22
- Configuring IntelliJ IDEA - WINDOWS, MAC and LINUX05:05
- Introduction01:18
- Hello World Project06:36
- Defining the Main Method07:20
- Hello World Challenge and Common Errors03:18
- Variables09:03
- Starting out with Expressions07:05
- Primitive Types11:36
- byte, short, long and width10:18
- Casting in Java04:06
- Primitive Types Challenge04:23
- float and double Primitive Types07:00
- Floating Point Precision and a Challenge10:22
- The char and boolean Primitive Data Types10:20
- Primitive Types Recap and the String Data Type12:56
- Operators, Operands and Expressions08:50
- Abbreviating Operators04:12
- if-then Statement09:16
- Logical and Operator06:24
- Logical OR Operator06:11
- Assignment Operator VS Equals to Operator07:31
- Ternary Operator04:10
- Operator Precedence and Operator Challenge11:44
- First Steps Summary01:29
- End of Remaster02:01
- Introduction00:31
- Keywords And Expressions07:18
- Statements, Whitespace and Indentation (Code Organization)09:24
- Code Blocks And The If Then Else Control Statements17:08
- if then else Recap04:19
- Methods In Java18:03
- More On Methods And A Challenge15:34
- Method Challenge - Final Code Changes07:27
- DiffMerge Tool Introduction01:54
- Install DiffMerge02:01
- Using DiffMerge17:29
- Coding Exercises13:24
- Coding Exercises Example Part 111:08
- Coding Exercises Example Part 211:53
- Coding Exercises Example Part 309:50
- Speed Converter1 question
- MegaBytes Converter1 question
- Barking Dog1 question
- Leap Year Calculator1 question
- DecimalComparator1 question
- Equal Sum Checker1 question
- Teen Number Checker1 question
- Method Overloading27:01
- Method Overloading Recap03:38
- Seconds and Minutes Challenge13:49
- Bonus Challenge Solution11:12
- Area Calculator1 question
- Minutes To Years and Days Calculator1 question
- Equality Printer1 question
- Playing Cat1 question
- Introduction00:38
- The switch statement (+Challenge Exercise)18:39
- Day of the Week Challenge10:47
- Number In Word1 question
- Number Of Days In Month1 question
- The for Statement (+Challenge Exercise)25:02
- For Loop Recap07:59
- Sum 3 and 5 Challenge06:13
- Sum Odd1 question
- The while and do while statements (+Challenge Exercise)24:21
- While and Do While Recap07:58
- Digit Sum Challenge10:29
- Number Palindrome1 question
- First And Last Digit Sum1 question
- Even Digit Sum1 question
- Shared Digit1 question
- Last Digit Checker1 question
- Greatest Common Divisor1 question
- All Factors1 question
- Perfect Number1 question
- Number To Words1 question
- Parsing Values from a String11:24
- Flour Pack Problem1 question
- Largest Prime1 question
- Diagonal Star1 question
- Reading User Input12:26
- Problems and Solutions10:20
- Reading User Input Challenge15:06
- Min and Max Challenge15:32
- Input Calculator1 question
- Paint Job1 question
- Introduction00:36
- Classes Part 116:31
- Classes Part 213:27
- Sum Calculator1 question
- Person1 question
- Constructors - Part 1 (+Challenge Exercise)20:10
- Constructors - Part 2 (+Challenge Exercise)16:00
- Wall Area1 question
- Point1 question
- Carpet Cost Calculator1 question
- Complex Operations1 question
- Inheritance - Part 119:39
- Inheritance - Part 213:24
- Reference vs Object vs Instance vs Class06:52
- this vs super06:52
- Method Overloading vs Overriding Recap07:32
- Static vs Instance Methods04:10
- Static vs Instance Variables04:17
- Inheritance Challenge Part 1 (+Challenge Exercise)16:38
- Inheritance Challenge Part 210:04
- Cylinder1 question
- Pool Area1 question
- Introduction00:37
- Composition17:19
- Composition Part 2 (+Challenge Exercise)14:17
- Composition1 question
- Encapsulation19:23
- Encapsulation (+Challenge Exercise)15:15
- Encapsulation1 question
- Polymorphism20:35
- Polymorphism (+Challenge Exercise)18:46
- Polymorphism1 question
- OOP Master Challenge Exercise16:41
- OOP Challenge - Solution16:46
- Bill's Burgers1 question
- Work in Progress01:05
- Keywords and Naming Conventions07:31
- Naming Conventions Challenge03:39
- Operator Associativity07:07
- Declaration and Expression Statements07:32
- Expression Statements, Prefix and Postfix14:35
- Whitespace09:14
- Code Blocks and Indentation12:27
- Code Blocks and if, then, and else09:39
- Boolean, Naming Conventions and Scope07:11
- Challenge and Code Duplication09:24
- Defining Methods08:38
- Executing Methods03:29
- Method Parameters Overview09:37
- Removing Code Duplication06:50
- Returning Data from a Method08:49
- Using Data from a Method Call03:03
- Method Recap and Challenge05:46
- Method Challenge Solution10:31
- Old JavaFX Introduction Video for JDK 817:31
- Old JavaFX Code Vs FXml Video for JDK 813:27
- Source code for all Programs16:23
- Bonus Lecture and Information05:01
Online Courses
Learning Java doesn't have to be hard. Here is our curated list of recommended online courses that will guide you step-by-step in the learning process.
Learn moreBooks
Are you an avid book reader? Do you prefer paperback, or maybe Kindle version? Take a look at our curated list of Java related books and take your
YouTube videos
The number of high-quality and free Java video tutorials is growing fast. Check this curated list of recommended videos - there is no excuse to stop learning.
Learn more