The Complete Java Masterclass: Learn Java From Scratch
4.5 (253 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
20,215 students enrolled

The Complete Java Masterclass: Learn Java From Scratch

Java Course For Beginners, Learn Java From Scratch, Become A Java Developer Learning Java Right From The Basics.
4.5 (253 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
20,215 students enrolled
Created by Ashutosh Pawar
Last updated 4/2020
English [Auto]
Current price: $135.99 Original price: $194.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 16 hours on-demand video
  • 20 articles
  • 43 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Gain Essential Skills To Apply For Junior Java Developer Positions
  • Learn Java Programming Right From the Basics Like Accepting User Input, Variables, Data Types, Performing Arithmetic Operations, Arrays, Control Structures, Usage of Loops to Repeat a Set of Instructions
  • Be Able To Answer Java Developer Interview Questions
  • Learn, Understand & Implement How Object Oriented Programming Works In Java & Learn The OOP Way Of Solving Programming Problems
  • Learn How To Manipulate Strings In Java Using The String Class & String Methods, Build A Password Validator, Frequency Counter & Find & Replace Program
  • Solve Complex Coding Challenges Based on Real World Applications
  • Learn Java Collections Like Array List, Linked List, Hash Set & Tree Set
  • Learn How to Use Access Specifiers as Public, Private & Protected To Regulate Access To Classes
  • Learn How Packages & Interfaces Work In Java, Create Java Packages, Implement Access Specifiers With Packages, User Interfaces To Create A Program To Implement Banking Rules
  • Learn About Java Collections Framework, ArrayList, Linked List, HashSet, Linked HashSet, TreeSet Along With Their Associated Methods
  • Learn Lambda Expressions, Block Lambdas & Generic Functional Interfaces
  • Learn & Implement Generics, Generic Methods, Generics With Multiple Parameters & Generic Bounded Types
  • Learn & Understand How Multithreading Works In Java, Create a New Thread, Reference Main Thread & Life Cycle of a Thread
Course content
Expand all 162 lectures 16:22:27
+ Java Basics: Variables & Data Types
13 lectures 01:37:55
Understanding Java Code
Introduction To Variables
Understanding Data Types In Java
Integer Data Types In Java
Float & Double Data Types
Characters & Booleans
Non-Primitive Data Types In Java
Creating Arrays In Java
Performing Arithmetic Operations
Accepting User Input From Console
Testing Our Skills, Programming A Simple Interest Calculator
+ Conditionals & Loops
29 lectures 02:46:28
Introduction To Conditional Statements In Java
Conditionals: If & Else-If Statement
Conditionals: Nested If Statement
Conditionals: Switch Case
Java Operators: Relational Operators In Java
Operators: Logical AND
Operators: Logical OR
Loops: Using A While Loop To Repeat A Set Of Instructions
Loops: Implementing The Do While Loop
Loops: Implementing The For Loop
Loops: Using For Loop To Iterate Arrays
Loops: Using While Loop To Iterate Arrays
Loops: Finding Odd Number From An Array Using If Conditional & Loops
Loops: Enhanced For Loop OR For Each Loop
Loops: Finding odd & Even Numbers From Array Using Loops
Understanding Multi-Dimensional Arrays In Java
Implementing Multi-Dimensional Arrays In Java
Practice Example 1: Checking Pass or Fail With Conditionals
Practice Example 1 Solution
Practice Example 2: Eligibility Criteria Test Using Nested If
Practice Example 2 Solution
Practice Example 3: Finding Day Of The Week Using Switch Case
Practice Example 3 Solution
Practice Example 4: Create Multiplication Table Using For Loop
Practice Example 4 Solution
Practice Example 5: Product Discount Calculator Using For Loop & Array
Practice Example 5 Solution
Practice Example 6: Accept Multiple Values Using Loops & Scanner
Practice Example 6 Solution
+ Object oriented programming
30 lectures 03:12:28
Introduction To Object Oriented Programming In Java
Creating Classes & Objects
Understanding How Object Creation Works Internally
Implementing Class Methods
Making Java Methods Return A Value
Designing Class Methods Which Accept Parameters
Using Constructors To Initialise Objects.
Creating Constructors Which Accepts Parameters
Overloading A Class Method
Overloading Constructors
Passing Objects As Parameters
Private Access Modifier
Static Access Modifier
Final Access Modifier
Inheritance: Making A Java Class Inherit From Other Classes
Implementing Inheritance In Java
Inheritance Problem
Solving The Inheritance Problem
Hierarchical Inheritance
Multilevel Inheritance
Understanding How To Override Class Methods In Java
Implementing Method Overriding
Prevent Overriding Using Final
Practice Example 7: Creating Classes & Objects
Practice Example 7 Solution
Practice Example 8: Calculating Area Of A Circle Using OOP
Practice Example 8 Solution
Practice Example 9: Inheritance
Practice Example 9 Solution
+ Exception Handling
12 lectures 54:55
Introduction To Exception Handling In Java
Implementing Exception Handling
Using Exception Description To Display Exception Message
Using Multiple Catch Blocks In An Exception
Nesting Of Try Blocks
Throwing Exceptions
Creating Our Own Custom Exceptions
List Of Built-in Exceptions
Practice Example 10: User Id Validation Using Exception Handling
Practice Example 10 Solution
Practice Example 11: Handle Negative Bank Deposits Using Exceptions
Practice Example 11 Solution
+ Java I/O
7 lectures 49:40
Introduction To Java I/O
Buffered Reader To Accept User Input
PrintWriter To Print To The Console
Reading Data From Files
Writing Data To Files
Practice Example 12: Saving Bank Balance In A File
Practice Example 12 Solution
+ Strings
18 lectures 01:31:04
String 1: Creating A String
String 2: Finding Length Of A String
String 3: Using CharAt & GetChars Methods To Find Characters
String 4: ToCharArray & Equals
String 5: RegionMatches & StartsWith
String 6: Finding A Substring
String 7: Concatenating & Replacing A String
String 8: Converting Strings To Uppercase & Lowercase
String 9: Understanding String Buffer Part 1
String 10: Understanding String Buffer Part 2
Practice Example 13: Building A Password Length Validator
Practice Example 13 Solution
Practice Example 14: Frequency Counter
Practice Example 14 Solution
Practice Example 15: Password Checker Using Equals
Practice Example 15 Solution
Practice Example 16: Find & Replace
Practice Example 16 Solution
+ Packages & Interfaces
11 lectures 01:10:22
Introduction To Java Packages
Creating A Package In Java
Access Specifiers With Packages
Implementing Access Specifiers With Packages
Introduction To Interfaces In Java
Implementing An Interface
Significance Of Using Interfaces In Java
Practice Example 17: Access Specifier
Practice Example 17 Solution
Practice Example 18: Implementing Bank Rules Using Interface
Practice Example 18 Solution
+ Java Collections
18 lectures 01:54:16
Introduction To Java Collections Framework
Introduction To ArrayList
Implementing ArrayList
More ArrayList Methods
Adding Objects To An ArrayList
Understanding LinkedList
Implementing LinkedList
Adding Objects To A LinkedList
Implementing A List Interface
Introduction To HashSet
Implementing HashSet
Implementing Linked HashSet
Introduction To TreeSet
Saving Objects To A TreeSet
Practice Example 19: Creating An ArrayList
Practice Example 19 Solution
Practice Example 20: Saving Objects In ArrayList
Practice Example 20 Solution
  • No prior programming experience is required

The Complete Java Masterclass: Learn Java From Scratch

Here Is What You Get By Enrolling In This Course:

Word-By-Word Explanation: In the entire course, I explain each line of code, without skipping a single line of code.

Awesome Quality Content: Over 16+ hours of HD Videos.

Well Structured & Easy To Learn: Course has been specially designed to make it easy for the students to learn Java in a simple manner.

24 X 7 Support: I will always be there to guide you in your journey to become Python expert.


Here Is Everything You Will Learn In This Complete Course:

In this hands-on course, you will learn Java right starting from scratch to the level where you can write complex Java programs using concepts like OOP, Inheritance, Interfaces, Generics etc.

This course will teach you Java right from scratch from a very basic level and will gradually move you towards more advanced topics.

In addition to the concepts taught, this course also has specially designed Practice Examples which will challenge you and make you think and test what you have learned.

The Complete Course is divided into 12 Major sections.

Here is a brief description of what you will learn in each section.

Section 1: Installing required tools.

In this section we will learn how to download and install the required tools and setup the development environment to start programming in Java.

Section 2: Data types, Arrays & Accepting user input.

In this section we will learn about the different types of data types in Java. We will learn about primitive and non-primitive data types in Java and also how they are different from each other. In primitive data types we will learn about int, char, float & boolean. In case of the non-primitive data types, we will cover Arrays. In addition to data types, we will also learn about the "Scanner" class which allows us to accept data from the user via the input console. We also learn how to create a very interesting program for calculating interest.

Section 3: Conditional & Loops.

In this section we will broadly cover two major topics i.e conditionals & loops. We will start off with an introduction to the "if" conditional statement and will learn how program flow can be changed using the conditional statement. Before writing the code for the conditional "if" we first in depth about how exactly the conditional statements work internally. We then take a coding example to understand the if statement and also learn about how we can nest together multiple "if" statements.

We then learn about the switch case which is also a conditional which can be used to alter the flow of execution of a program. After which we move ahead to learn about logical operators which play a major role in conditionals and in deciding the flow of execution of a program. We cover logical "AND" & "OR" operators in Java and use them with conditionals.

Next we learn about loops, the for and the while loop which allow us to iterate or repeat a set of code multiple number of times. We also learn how to use these loops to iterate through an array to access individual array elements. We also learn about a special for loop called as the enhanced for loop which can also be used to iterate an array.

Now that we know how to use loops to iterate arrays, we now dive deeper into multi-dimensional array. We also write a Java program to find odd & even numbers from a given array, we perform this task using a combination of conditionals, arrays & loops.

To further strengthen the concepts we learned, we also have a set of challenging practice examples at the end of this section.

Section 4: Object Oriented Programming.

OOP is the heart and code of Java and hence in this section we spend a great deal of time to understand and learn Object Oriented Programming in Java. We start off by learning what exactly does OOP mean and how the OOP methodology works. We then learn about how to create objects and classes in Java and see how objects are created internally.

We then learn about class methods and learn their significance in OOP. We write different methods, make methods return values and also learn how to create class methods that accept parameters. After which we learn about constructors which help us to initialise classes in Java and also learn how to create parametrised constructors.

We then move on to learn the "this" keyword in Java and it's significance, we take an example to learn how "this" keyword can be used to access instance variables and class methods. We then learn about method overloading and constructor overloading and take an example to overload class methods in Java.

We then learn about access modifiers in Java and use them in conjunction with class attributes and methods. We learn about access modifiers such as public, private & protected and learn in depth about how they allow certain part of the code to be shared and to be kept hidden.

Up next, we learn about inheritance which is another most important features of Java. We learn how to make a class inherit attributes and methods of other classes using the extends keyword. We just don't cover the regular inheritance but also cover Hierarchical and Multi-level inheritance as well.

Marching ahead we learn about method overriding and learn how to override methods form the parent class in Java. We also learn how to prevent method overriding using the "final" keyword.

Section 5: Exception handling.

In this section we learn, what are exceptions? How exceptions can be thrown, caught & handled. We learn how to use try blocks to enclose the exception prone code such that we can handle an exception when it occurs. We will also learn how to nest multiple try blocks inside each other to catch multiple exceptions in a given program. Apart from this we also learn how to create our very own custom exceptions and also how to throw them when needed.

This section is also backed by a solid set of practice example, one to handle invalid user ID and other one to handle negative bank deposits.

Section 6: Java I/O

This section deals with the basic I/O operations in Java i.e reading input from user, displaying output to the user, reading from files, writing to files etc. In this section we will cover a couple of classes from the Java I/O package and also their methods which allow us to perform I/O operations. We start off by learning how Java I/O works and then learn about the BufferedReader class which is used to accept user input and the PrintWriter class used to display the output to the user. We will also learn how to read and write data to the files using the associated classes. At the end, we write a program which can store data into a file so that even if the program execution ends, the data would still be preserved in the file.

Section 7: Strings

This section is all about string class and its methods. String is one of the most widely used data structure in Java and hence we learn and understand various string methods. Some of the string method which will be covered in this section are length, charAt, getChar, toCharArray, equals, regionMatches, substring, concat, toUpperCase, toLowerCase.

In addition to this we also learn about the StringBuffer class as well which has the exact same methods as the string class but is immutable.

This section also includes a challenging set of practice examples like a password length validator, frequency counter, password checker & a find and replace program.

Section 8: Packages & Interfaces.

We will learn about what are Packages in Java, why they are required and how to create and use them. We will also learn how access modifiers can be used with packages to prevent access to certain classes and its methods. We also learn about interfaces, how they are created and why they are required.

As a practice example we will build a mini banking software that makes use of interfaces to impose banking rules.

Section 9: Java collections.

We learn what are Java collections, what is an ArrayList, how to implement an ArrayList and also learn multiple ArrayList methods which allow us to add items or objects to the ArrayList and manipulate them. We will also learn about LinkedList and learn how to create a LinkedList and use LinkedList methods to manipulate items inside a LinkedList. In a similar way we also learn about List interface, HashSet, LinkedHashSet & TreeSet along with their respective methods.

Section 10: Lambda Expressions.

In this section we cover lambda expressions and its usage, we will learn how to write a lambda expression in Java along with a functional interface. We will also learn how to enclose a chunk of code into lambdas using block lambdas. We will also learn about using generic functional interface and how to pass arguments to a lambda expression.

Section 11: Generics.

This section covers generics in java, we will first start off with an introduction to generics and then will actually implement generics using a coding example. We will learn how to add multiple parameters to a generic, the different generic methods and bounded type generics.

Section 12: Multithreading.

Multithreading is another important concept in the Java programming language. In this section we study multithreading in detail. We will learn what is a thread, what is a life cycle and different stages of a thread. We will learn how to reference and access the main thread in a Java program and how to manipulate it. We will also learn about different ways to create a thread in Java i.e using the runnable interface and using a thread class. We will also create multiple threads and observe how they behave and execute in a multithreaded environment.

To conclude we will also learn about a couple thread methods such as the join and the yield method which can be performed on a thread.


So let's begin the journey of becoming an expert Java Programmer.

In addition to the Udemy 30-day money back guarantee, you have my personal guarantee that you will love what you learn in this course. If you ever have any questions please feel free to message me directly and I will do my best to get back to you as soon as possible!


Make sure to enrol in the course before the price changes.

Take yourself one step closer towards becoming a professional Java developer by clicking the "take this course button" now!

Join the journey.


Ashutosh Pawar

Who this course is for:
  • Students who are complete beginners to Java
  • Students who know other programming languages and want to learn Java
  • Students who aspire to work as a Java developer