Oracle Certification: Mastering Java for Beginners & Experts
4.1 (1,016 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.
55,493 students enrolled

Oracle Certification: Mastering Java for Beginners & Experts

Java is one of the most popular programming languages. Companies like Facebook, Microsoft and Apple all want Java
4.1 (1,016 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.
55,493 students enrolled
Created by Frahaan Hussain
Last updated 3/2019
English [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
23 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6 hours on-demand video
  • 22 articles
  • 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
  • Java programming
  • Application programming
  • Semantics of general programming
  • The format of coding applications
  • All the functions of Java programming
  • Application programming
Course content
Expand all 90 lectures 05:45:29
+ Introduction & Setup
5 lectures 18:17

Learn about this course and everything you will learn in this course.

Preview 01:46

Learn how to setup the Eclipse IDE on Windows.

Eclipse is an integrated development environment(IDE) used in computer programming, and is the most widely used Java IDE.

Preview 05:06

Learn how to setup the Eclipse IDE on Mac OS X.

Eclipse is an integrated development environment(IDE) used in computer programming, and is the most widely used Java IDE.

Preview 05:06

Learn how to setup the Eclipse IDE on Linux.

Eclipse is an integrated development environment(IDE) used in computer programming, and is the most widely used Java IDE.

Setup Eclipse On Linux

An (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. This typically includes a text editor, syntax highlighting, debugger, version control, and build/run/deploy options. Another defining feature of an IDE is some form of intelligent code completion, sometimes called intellisense.

An "Online IDE" has the features mentioned above but runs in a web browser instead of installing as a native application. An "Online IDE" can be made accessible in offline mode without an internet connection and still satisfy the above conditions.

Run Code Online

Check your knowledge on the setup for Java.

Quiz 1 - Intro
2 questions
+ Basics
20 lectures 02:10:00

Java Console is a simple debugging aid that redirects any System.out and System.err to the console window. It is available for applets running with Java Plug-in and applications running with Java Web Start.

Preview 03:40

In computer programming, a comment is a programmer-readable explanation or annotation in the source code of a computer program. They are added with the purpose of making the source code easier for humans to understand, and are generally ignored by compilers and interpreters.


In programming, a variable is a value that can change, depending on conditions or on information passed to the program. Typically, a program consists of instruction s that tell the computer what to do and data that the program uses when it is running.


In computer science and computer programming, a data type or simply type is a classification of data which tells the compiler or interpreter how the programmer intends to use the data. Most programming languages support various types of data, for example: real, integer or Boolean. A data type provides a set of values from which an expression (i.e. variable, function...) may take its values. This data type defines the operations that can be done on the data, the meaning of the data, and the way values of that type can be stored. A type of value from which an expression may take its value.


Data values that stay the same every time a program is executed are known as constants. Constants are not expected to change.

Literal constants are actual values fixed into the source code. An example of this might be the character string "hello world". The data value "hello world" has been fixed into the code.

Named constants are values where a name is defined to be used insteadof a literal constant. An example of this might be stating that the 'starting level' of a game is always referred to as 1.

Examples of a constant within a game might be:

  • the unit of gravity

  • the number of lives available for the player

  • the amount of time allowed for a level in a game

Constant Variables

The Console is a window of the operating system through which users can interact with system programs of the operating system or with other console applications. The interaction consists of text input from the standard input (usually keyboard) or text display on the standard output (usually on the computer screen).

Console Input

An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations. C++ is rich in built-in operators and provide the following types of operators − Arithmetic Operators. Relational Operators.

Preview 17:30

The if/else statement executes a block of code if a specified condition is true. If the condition is false, another block of code can be executed.

if statement (Conditional Statement)

In computer programming languages, a switch statement is a type of selection control mechanism used to allow the value of a variable or expression to change the control flow of program execution via a multiway branch.

switch statement (Conditional Statement)

In computer science, a for-loop (or simply for loop) is a control flow statement for specifying iteration, which allows code to be executed repeatedly. ... For-loops are typically used when the number of iterations is known before entering the loop.

for Loop

In most computer programming languages, a while loop is a control flow statement that allows code to be executed repeatedly based on a given Boolean condition. The while loop can be thought of as a repeating if statement.

while Loop

In most computer programming languages, a do while loop is a control flow statement that executes a block of code at least once, and then repeatedly executes the block, or not, depending on a given boolean condition at the end of the block. ... If it is true, the code executes the body of the loop again.

do while Loop

With loop control statements, you can repeatedly execute a block of code. There are two types of loops: for statements loop a specific number of times, and keep track of each iteration with an incrementing index variable.

Loop Control Statements

In Java language, we mostly work with a primitive data type, but Java also provides a wrapper class under the abstract class numbers in java.lang package, there are six subclasses under the class ‘numbers’.

Preview 07:42

The Character class wraps a value of the primitive type char in an object. An object of type Character contains a single field whose type is char.

In addition, this class provides several methods for determining the type of a character and converting characters from uppercase to lowercase and vice versa.


Strings, which are widely used in Java programming, are a sequence of characters. In Java programming language, strings are treated as objects.

The Java platform provides the String class to create and manipulate strings.


An array is a container object that holds a fixed number of values of a single type. The length of an array is established when the array is created. After creation, its length is fixed. You have seen an example of arrays already, in the main method of the "Hello World!"

Preview 07:41

The foreach loop, added in Java 5 (also called the "enhanced for loop"), is equivalent to using a java.util.Iterator --it's syntactic sugar for the same thing. Therefore, when reading each element, one by one and in order, a foreach should always be chosen over an iterator, as it is more convenient and concise.

foreach Loop

Java 8 introduced new APIs for Date and Time to address the shortcomings of the older java.util.Date and java.util.Calendar.

Date & Time

regular expression defines a search pattern for strings. The abbreviation for regular expression is regex. The search pattern can be anything from a simple character, a fixed string or a complex expression containing special characters describing the pattern. The pattern defined by the regex may match one or several times or not at all for a given string.

Regular Expressions

How good are you're Java Basics?

Quiz 2 - Basics
6 questions
+ Methods
5 lectures 22:53

In this sense, a function is a type of procedure or routine. Some programming languages make a distinction between a function, which returns a value, and a procedure, which performs some operation but does not return a value. Most programming languages come with a prewritten set of functions that are kept in a library.

Preview 05:05

While working under calling process, arguments is to be passed. These should be in the same order as their respective parameters in the method specification. Parameters can be passed by value or by reference.

Passing Parameters by Value means calling a method with a parameter. Through this, the argument value is passed to the parameter.

Passing Values To Functions

Method Overloading is a feature that allows a class to have more than one method having the same name, if their argument lists are different. It is similar to constructor overloading in Java, that allows a class to have more than one constructor having different argument lists.

Method Overloading

Command line argument in Java. The command line argument is the argument passed to a program at the time when you run it. To access the command-line argument inside a java program is quite easy, they are stored as string in String array passed to the args parameter of main() method.

Command Line Arguments

In JDK 5, Java has included a feature that simplifies the creation of methods that need to take a variable number of arguments. This feature is called varargs and it is short-form for variable-length arguments. A method that takes a variable number of arguments is a varargs method.

Prior to JDK 5, variable-length arguments could be handled two ways. One using overloaded method(one for each) and another put the arguments into an array, and then pass this array to the method. Both of them are potentially error-prone and require more code. The varargs feature offers a simpler, better option.

Multiple Arguments Simplified

Let's test your knowledge on methods/functions.

Quiz 3 - Methods
5 questions
+ File IO
5 lectures 18:03

Byte streams process data byte by byte (8 bits). For example FileInputStream is used to read from source and FileOutputStream to write to the destination.

A stream is a method to sequentially access a file. I/O Stream means an input source or output destination representing different types of sources e.g. disk files.The package provides classes that allow you to convert between Unicode character streams and byte streams of non-Unicode text.

Preview 07:04

The Java platform stores character values using Unicode conventions. Character stream I/O automatically translates this internal format to and from the local character set. In Western locales, the local character set is usually an 8-bit superset of ASCII.

For most applications, I/O with character streams is no more complicated than I/O with byte streams. Input and output done with stream classes automatically translates to and from the local character set. A program that uses character streams in place of byte streams automatically adapts to the local character set and is ready for internationalisation — all without extra effort by the programmer.

Character Streams

When writing command line applications in Java, you may want to prompt the user for input or a password, process a file, or pipe the output of another process through your application. This tutorial will walk through the process of using standard input, output, and error in Java.

Standard Streams

Learn how to list files and folders from your computers.

Listing Files & Folders

To create a directory in Java, just use the mkdir or mkdirs methods of the Java File class.

Preview 02:28

Time to see how your input and output skills for file manipulation are?

Quiz 4 - File IO
2 questions
+ Exceptions
5 lectures 22:37

A try statement is used to catch exceptions that might be thrown as your program executes. You should use a try statement whenever you use a statement that might throw an exception. That way your program won’t crash if the exception occurs.

Preview 05:28

In Java SE 7 and later, a single catch block can handle more than one type of exception. This feature can reduce code duplication and lessen the temptation to catch an overly broad exception.

Multiple Catch Blocks

Throw vs Throws in java. 1. Throws clause is used to declare an exception, which means it works similar to the try-catch block. Throw keyword is used in the method body to throw an exception, while throws is used in method signature to declare the exceptions that can occur in the statements present in the method.

Preview 02:55

Java finally block is a block that is used to execute important code such as closing connection, stream etc. Java finally block is always executed whether exception is handled or not. Java finally block follows try or catch block.

Finally Block

User Defined Exception or custom exception is creating your own exception class and throws that exception using ‘throw’ keyword. This can be done by extending the class Exception.

User Created Exceptions

Let's test your knowledge on exceptions

Quiz 5 - Exceptions
4 questions
+ Classes & OOP
8 lectures 41:45

Java Class File. A Java class file is a file containing Java bytecode and having .class extension that can be executed by JVM. A Java class file is created by a Java compiler from .java files as a result of successful compilation.

Preview 08:17

A class contains constructors that are invoked to create objects from the class blueprint. Constructor declarations look like method declarations—except that they use the name of the class and have no return type.


this is a keyword in Java. this keyword in java can be used inside the Method or constructor of Class. It(this) works as a reference to the current Object, whose Method or constructor is being invoked. This keyword can be used to refer to any member of the current object from within an instance Method or a constructor.

this keyword

To have a superclass is to extend, or inherit from, a class. Thus, to be a subclass is to extend a class. Every class in Java can have only one direct superclass from which it inherits some of its fields and methods. ... From its superclass, a class inherits all fields and methods that are not declared as private.

Preview 06:24

Java has public , package , protected , and private . The access modifier package is the default and used, if any other access modifier keyword is missing. Themeaning of these modifiers may differ from one language to another.

Modifier Types

In any object-oriented programming language, Overriding is a feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its super-classes or parent classes. When a method in a subclass has the same name, same parameters or signature and same return type(or sub-type) as a method in its super-class, then the method in the subclass is said to override the method in the super-class.


In javaabstraction is achieved by interfaces and abstract classes. We can achieve 100% abstraction using interfaces. Abstract classes and Abstract methods : An abstract class is a class that is declared with abstract keyword. An abstract method is a method that is declared without an implementation.

Preview 04:56

Java interface is a bit like a class, except a Java interface can only contain method signatures and fields. An Java interface cannot contain an implementation of the methods, only the signature (name, parameters and exceptions) of the method. You can use interfaces in Java as a way to achieve polymorphism.


How good is your class?

Quiz 6 - Classes & OOP
6 questions
+ Data Structures
6 lectures 27:22

An enum type is a special data type that enables for a variable to be a set of predefined constants. The variable must be equal to one of the values that have been predefined for it. Common examples include compass directions (values of NORTH, SOUTH, EAST, and WEST) and the days of the week.


The Stack class represents a last-in-first-out (LIFO) stack of objects. It extends class Vector with five operations that allow a vector to be treated as a stack. The usual push and pop operations are provided, as well as a method to peek at the top item on the stack, a method to test for whether the stack is empty, and a method to search the stack for an item and discover how far it is from the top.

Preview 04:14

The Vector class implements a growable array of objects. Like an array, it contains components that can be accessed using an integer index. An application can increase the capacity of a vector before inserting a large number of components; this reduces the amount of incremental reallocation.


BitSet is a class defined in the java.util package. It creates an array of bits represented by boolean values. The size of the array is flexible and can grow to accommodate additional bit as needed. Because it is an array, the bit values can be accessed by non-negative integers as an index.


Java - The Properties Class. Properties is a subclass of Hashtable. It is used to maintain lists of values in which the key is a String and the value is also a String. The Properties class is used by many other Java classes.

Preview 05:00

hash table is a data structure that is used to store keys/value pairs. It uses a hash function to compute an index into an array in which an element will be inserted or searched. By using a good hash function, hashing can work well.


How much did you learn about data structures?

Quiz 7 - Data Structures
2 questions
+ Collections
7 lectures 22:32

An ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list.

Unlike sets, lists typically allow duplicate elements. More formally, lists typically allow pairs of elements e1 and e2 such that e1.equals(e2), and they typically allow multiple null elements if they allow null elements at all. It is not inconceivable that someone might wish to implement a list that prohibits duplicates, by throwing runtime exceptions when the user attempts to insert them, but we expect this usage to be rare.


A Set is a Collection that cannot contain duplicate elements. It models the mathematical set abstraction. The Set interface contains only methods inherited from Collection and adds the restriction that duplicate elements are prohibited. Set also adds a stronger contract on the behaviour of the equals and hashCode operations, allowing Set instances to be compared meaningfully even if their implementation types differ. Two Set instances are equal if they contain the same elements.

Preview 03:58

SortedSet is an interface in collection framework. This interface extends Set and provides a total ordering of its elements. Exampled class that implements this interface is TreeSet.


Maps are used for when you want to associate a key with a value and Lists are an ordered collection. Map is an interface in the Java Collection Framework and aHashMap is one implementation of the Map interface. HashMap are efficient for locating a value based on a key and inserting and deleting values based on a key.


A map entry (key-value pair). The Map.entrySet method returns a collection-view of the map, whose elements are of this class. The only way to obtain a reference to a map entry is from the iterator of this collection-view. These Map.Entry objects are valid only for the duration of the iteration; more formally, the behaviour of a map entry is undefined if the backing map has been modified after the entry was returned by the iterator, except through the setValue operation on the map entry.

Preview 02:56

A Map that further provides a total ordering on its keys. The map is ordered according to the natural ordering of its keys, or by a Comparator typically provided at sorted map creation time. This order is reflected when iterating over the sorted map's collection views (returned by the entrySet, keySet and values methods). Several additional operations are provided to take advantage of the ordering.

Preview 01:48

An object that implements the Enumeration interface generates a series of elements, one at a time. Successive calls to the nextElement method return successive elements of the series.


How close did you pay attention in this section, lets find out.

Quiz 8 - Collections
3 questions
+ Networking
1 lecture 07:00

Learn how to create a client for networking.

Client Example
+ Multithreading
3 lectures 22:37

Learn how to create a server for networking and connecting.

Server Example

Interface Runnable. The Runnable interface should be implemented by any class whose instances are intended to be executed by a thread. The class must define a method of no arguments called run . This interface is designed to provide a common protocol for objects that wish to execute code while they are active.

Preview 09:00

Thread class provide constructors and methods to create and perform operations on a thread. Thread class extends Object class and implements Runnable interface.

Creating Threads by Extending a Thread Class
  • Passion for learning Java
  • Basic computer knowledge and skills
  • Passion for programming
  • Basic knowledge of computer science is optional

Learn about everything there is to know about Java Applications and How To Program Them. A step by step process is used to show explain every facet of these topics.

Gain a good understanding of the following concepts with this course:

  1. What Java is?

  2. Oracle Java Certification

  3. How to program in the Java language

  4. Features of the Java programming language

  5. Coding semantics

  6. Website programming

  7. Design practises of applications

  8. Application programming

  9. Object Oriented programming

  10. Network programming

  11. Email programming

  12. Applet programming

  13. Multithreading programming

Java is fast becoming a worldwide Tour De Force that is requested by all companies such as Google, Facebook and Microsoft. This course will ensure you are not left as more and more companies request this awesome language. This course will teach your everything about programming Java applications and websites.

You will receive all the knowledge to use and leverage the powerful technology behind these amazing and wonderful platforms.

Over 205,000 students have enrolled on my courses and all of them are extremely satisfied. You will also be satisfied with this course. If you do not like the course, remember that within 30 days you can request a full refundI guarantee you satisfaction.

If you have any questions regarding the topics covered in this course, please feel free to ask. I'm always happy to help those who want to learn.

To summarise this is what you get:

• Lifetime access to HD quality videos. No monthly subscription. Learn at your own pace, whenever you want.

• All videos are downloadable. Learn wherever you want, even without an internet connection!

• Downloadable starter code and final code for each section.

• Free helpful support in the course Q&A when you have questions or get stuck.

• Multiple coding challenges to practice your new skills (solutions included).

Sounds great? Then start this adventure today by clicking the “Take this course" button, and join me in the only course that you will need!

Who this course is for:
  • Anyone looking to learn about Java
  • Developers looking to learn the skills needed to acquire the Oracle Java Certification
  • People looking to learn about programming
  • Those seeking to understand how Java works
  • People seeking guidance on how to create Java based programs
  • Beginners and experts in this field
  • People seeking more knowledge on the various features of the Java programming language