A Complete Java Tutorial Course for Beginners

This is one of the best tutorial on java, that we have created. Suitable for beginners, in depth knowledge is given
4.2 (89 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
6,285 students enrolled
90% off
Take This Course
  • Lectures 122
  • Length 11 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English

Course Description

This course is specially made for beginners, No prior programming knowledge required.

Get our private course "Test and improve your Java skills" FREE with this course.

100% FREE coupon available inside the course!


This course is loaded with

1. Almost all the concepts under core Java

2. Multi-threading basics

3. Introduction to Collections Framework

4. Introduction to Java Generics

5. Introduction to Lambda Expression


Why you should take this course?

1. It's one of the best course for beginners in Java

2. This course is loaded with almost all required information about core Java

3. It's a one stop destination for beginners in Java

4. Our team has created the curriculum in such a way that learning Java was never so easy before!

5. Every video is researched and developed!

6. We have kept the lectures short and simple

7. We have used special video editing techniques e.g. ZOOM & PAN, cursor effects to make lectures easy on eyes

8. This is a well organised course



1) Java is Easy to learn

2) Java is an Object Oriented Programming Language

3) Java has Rich API

4) Powerful development tools e.g. Eclipse , Netbeans

5) Great collection of Open Source libraries

6) Wonderful community support

7) Java is FREE

8) Excellent documentation support - Javadocs

9) Java is Platform Independent

10) Java is Everywhere

What are the requirements?

  • C programming (Recommended)

What am I going to get from this course?

  • Understand, How to program in Java programming language
  • Java Programming fundamentals
  • Object oriented programming
  • Code console application using Java

Who is the target audience?

  • The Students who want to make careers in IT, This is for you!
  • Everyone who want to make careers as a Java programmer
  • Everyone who is interested in programming

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Getting Started

Thanks enrolling into the course, In order to start programing in Java we only need JDK (Java development kit). The videos demonstrate how to download and setup system for Java.


Eclipse IDE is most widely used IDE in industry. In this video, Author has explained hoe to download and setup Eclipse IDE for Java programmers.


Its demonstration videos to show how to code “Hello world” program in Java using Eclipse IDE.


Java has 50 keywords; we have checked and discussed these keywords in this video.

List of Java keywords and short explanation
7 pages

Naming Conventions

  1.  Class names should be capitalized

    2.    Interface names should be capitalized like class names. 

    3.    Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized.

    4.    Variables: Lowercase first letter. Internal words start with capital letters. 

    5.    Package name should be in lowercase letter 

    6.    Constants name should be in uppercase letter. 

Naming convention document
1 page
Section 2: Background
Claim your free course

Variables are constants are basic building block of any programming language, In this video we are going to check the same with respect with Java.


How Java decides, how much memory to occupy for a data. Data type is the answer. Data type is basic building block of any programming language. 

Primitive Data Types

  • byte: The byte data type is an 8-bit signed two's complement integer. It has a minimum value of -128 and a maximum value of 127 (inclusive). The byte data type can be useful for saving memory in large arrays, where the memory savings actually matters. They can also be used in place of int where their limits help to clarify your code; the fact that a variable's range is limited can serve as a form of documentation.

  • short: The short data type is a 16-bit signed two's complement integer. It has a minimum value of -32,768 and a maximum value of 32,767 (inclusive). As with byte, the same guidelines apply: you can use a short to save memory in large arrays, in situations where the memory savings actually matters.

  • int: By default, the int data type is a 32-bit signed two's complement integer, which has a minimum value of -231 and a maximum value of 231-1. In Java SE 8 and later, you can use the int data type to represent an unsigned 32-bit integer, which has a minimum value of 0 and a maximum value of 232-1. Use the Integer class to use int data type as an unsigned integer. See the section The Number Classes for more information. Static methods like compareUnsigneddivideUnsigned etc have been added to the Integer class to support the arithmetic operations for unsigned integers.

  • long: The long data type is a 64-bit two's complement integer. The signed long has a minimum value of -263 and a maximum value of 263-1. In Java SE 8 and later, you can use the long data type to represent an unsigned 64-bit long, which has a minimum value of 0 and a maximum value of 264-1. Use this data type when you need a range of values wider than those provided by int. The Long class also contains methods like compareUnsigneddivideUnsigned etc to support arithmetic operations for unsigned long.

  • float: The float data type is a single-precision 32-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in the Floating-Point Types, Formats, and Values section of the Java Language Specification. As with the recommendations forbyte and short, use a float (instead of double) if you need to save memory in large arrays of floating point numbers. This data type should never be used for precise values, such as currency. For that, you will need to use the java.math.BigDecimal class instead. Numbers and Strings covers BigDecimal and other useful classes provided by the Java platform.

  • double: The double data type is a double-precision 64-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in the Floating-Point Types, Formats, and Values section of the Java Language Specification. For decimal values, this data type is generally the default choice. As mentioned above, this data type should never be used for precise values, such as currency.

  • boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.

  • char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).

Non-primitive—which include Classes, Interfaces, and Arrays.

Primitive Data Types document
1 page

Here is a demonstration video on , How we make using of variable under Java.


In this video we have discussed on Java laterals. Here is a documentation provided by oracle.


You may have noticed that the new keyword isn't used when initializing a variable of a primitive type. Primitive types are special data types built into the language; they are not objects created from a class. A literal is the source code representation of a fixed value; literals are represented directly in your code without requiring computation. As shown below, it's possible to assign a literal to a variable of a primitive type:

boolean result = true;
char capitalC = 'C';
byte b = 100;
short s = 10000;
int i = 100000;

Integer Literals

An integer literal is of type long if it ends with the letter L or l; otherwise it is of type int. It is recommended that you use the upper case letter L because the lower case letter l is hard to distinguish from the digit 1.

Values of the integral types byteshortint, and long can be created from int literals. Values of type long that exceed the range of int can be created from long literals. Integer literals can be expressed by these number systems:

  • Decimal: Base 10, whose digits consists of the numbers 0 through 9; this is the number system you use every day
  • Hexadecimal: Base 16, whose digits consist of the numbers 0 through 9 and the letters A through F
  • Binary: Base 2, whose digits consists of the numbers 0 and 1 (you can create binary literals in Java SE 7 and later)

For general-purpose programming, the decimal system is likely to be the only number system you'll ever use. However, if you need to use another number system, the following example shows the correct syntax. The prefix 0x indicates hexadecimal and 0b indicates binary:

// The number 26, in decimal
int decVal = 26;
//  The number 26, in hexadecimal
int hexVal = 0x1a;
// The number 26, in binary
int binVal = 0b11010;

Floating-Point Literals

A floating-point literal is of type float if it ends with the letter F or f; otherwise its type is double and it can optionally end with the letter D or d.

The floating point types (float and double) can also be expressed using E or e (for scientific notation), F or f (32-bit float literal) and D or d (64-bit double literal; this is the default and by convention is omitted).

double d1 = 123.4;
// same value as d1, but in scientific notation
double d2 = 1.234e2;
float f1  = 123.4f;

Character and String Literals

Literals of types char and String may contain any Unicode (UTF-16) characters. If your editor and file system allow it, you can use such characters directly in your code. If not, you can use a "Unicode escape" such as '\u0108' (capital C with circumflex), or "S\u00ED Se\u00F1or"(Sí Señor in Spanish). Always use 'single quotes' for char literals and "double quotes" for String literals. Unicode escape sequences may be used elsewhere in a program (such as in field names, for example), not just in char or String literals.

The Java programming language also supports a few special escape sequences for char and String literals: \b (backspace), \t (tab), \n (line feed), \f (form feed), \r (carriage return), \" (double quote), \' (single quote), and \\ (backslash).

There's also a special null literal that can be used as a value for any reference type. null may be assigned to any variable, except variables of primitive types. There's little you can do with a null value beyond testing for its presence. Therefore, null is often used in programs as a marker to indicate that some object is unavailable.

Finally, there's also a special kind of literal called a class literal, formed by taking a type name and appending ".class"; for example, String.class. This refers to the object (of type Class) that represents the type itself.

Using Underscore Characters in Numeric Literals

In Java SE 7 and later, any number of underscore characters (_) can appear anywhere between digits in a numerical literal. This feature enables you, for example. to separate groups of digits in numeric literals, which can improve the readability of your code.

For instance, if your code contains numbers with many digits, you can use an underscore character to separate digits in groups of three, similar to how you would use a punctuation mark like a comma, or a space, as a separator.

The following example shows other ways you can use the underscore in numeric literals:

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi =  3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;

You can place underscores only between digits; you cannot place underscores in the following places:

  • At the beginning or end of a number
  • Adjacent to a decimal point in a floating point literal
  • Prior to an F or L suffix
  • In positions where a string of digits is expected

Java Literal document
3 pages

Demonstration video where the author has shown literals in action.



Type casting is a basic but very important operation. Here is what author needs to say about what type casting actually is.

Primitive Type Casting Document
3 pages

As we know what is typecasting, let's check the type casting using primitive data type in action.


When it's come to user input in Java, it's little different when we compare programming language like C, C++, Php. Let's check how to take user input in Java.

Couple of Eclipse shortcuts
Project files - Background section
1 page
Section 3: Decision Making Under Java
Operators available in Java Document
6 pages

An operator is a symbol that tells the compiler to perform specific mathematical or logical
Types of operators
1. Relational Operators
2. Misc. Operators
3. Logical Operators
4. Arithmetic Operators
5. Bitwise Operators
6. Assignment Operators
7. instanceof Operator


Demonstration video for usage of Increment/Decrement operator as postfix and prefix. Concept is simple and good to know. Let's check! 

Decision Making Under Java Document
1 page

Decision making is about deciding the order of execution of code in program depending upon the
condition. In java programming decision making is done by following mechanism.
1. if statement
2. Switch statement
3. Conditional Operator

Let check the IF condition first!

Decision Making using IF condition Part 2
Decision Making using IF condition Part 3
Decision Making using IF condition Part 3 (Document)
1 page
Decision Making using IF condition Part 4
Switch Case Part 1
Switch case Part 1 (Document)
3 pages
Switch Case Part 2
Switch Case Part 3 (usage of break)
Ternary operator
Get "Test and improve your Java skills" course for FREE
Project files - Decision Making Under Java
1 page
Give us a minute
1 question
Section 4: Loops
Introduction to Loop control in Java
1 page
While loop
Few more points you should know
2 pages
For loops
For loop (Document)
2 pages
Understanding Break and continue
Understanding Break and continue (Document)
2 pages
Do While loop
Nested loops - How it's work
Project files - Loops
1 page
Give us a minute
1 question
Section 5: Arrays
Arrays Introduction
Array with loops
Multi-dimensional array
Traverse multi-dimensional array
Project files - Arrays
1 page
Give us a minute
1 question
Section 6: Object oriented programming Basics
Introduction to Classes and objects
Super Short notes from last lecture
Methods part 2
Getters and Setters
Method overloading
Usage of Static and final
Methods - Passing arrays as parameter of methods
Methods - Call by value and call by reference
String builder class
String formatting
String formatting (Document)
2 pages
The .equals methods
The toString method
Project files - Objected oriented programming Basics
1 page
Give us a minute
1 question
Section 7: Object oriented programming Advance
Inheritance Part 1
Inheritance Part 2 - Overriding and super keyword
Inheritance Part 3 - Overriding and super keyword
Access modifiers Part 1
Access modifiers Part 2
Access modifiers (Document)
1 page
Mutiple Inheritace using interfaces
Upcasting and conclusion of polymorphism
Member inner class
Static and local inner class
Anonymous inner class
Abstract class
Java api Docs
Exception handling
Checked and unchecked exception
Checked and unchecked exception (Document)
2 pages
Understanding throws and throw keyword

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

StudyEasy Organisation, Fantastic content maker and fabulous presenters

We are a team of dedicated people who perform intense research, pragmatic planning and come up with easily understandable and quality courses for student around the world. We follow an ongoing process of quality analysis by meticulously considering and improving our work by taking the feedback from the users.

We are fantastic content maker and fabulous presenters.

we are StudyEasy Organisation!

Instructor Biography

Chaand Sheikh, Instructor for 25,000+ students

Chaand is a knowledgeable person and has keen interest in helping students worldwide. Chaand is Director of StudyEasy Organization and Chaand and his team is dedicated to build high quality content of technology based topics.  

Ready to start learning?
Take This Course