Skip to content
Home » Blog » Introduction to Java now in a Beginner-Friendly Version

Introduction to Java now in a Beginner-Friendly Version

Introduction to Java

JAVA was developed by James Gosling at Sun Microsystems Inc in the year 1995, later acquired by Oracle Corporation. It is a simple programming language. Java makes writing, compiling, and debugging programming easy. It helps to create reusable code and modular programs. In this article, we’ll give you a brief Introduction to Java, as we walk you through all the different concepts you need to know to build your own java programs

Introduction to Java

java is a class-based, object-oriented programming language and is designed to have as few implementation dependencies as possible. A general-purpose programming language made for developers to write once run anywhere that is compiled Java code can run on all platforms that support Java. Java applications are compiled to byte code that can run on any Java Virtual Machine. The syntax of Java is similar to c/c++.

What is the Java Development Kit (JDK)?

The Java Development Kit (JDK) is a software development environment that offers a collection of tools and libraries necessary for developing Java applications. You need the JDK to convert your source code into a format that the Java Runtime Environment (JRE) can execute.

The JDK includes the Java Runtime Environment (JRE), an interpreter (java), a compiler (javac), an archiver (jar), a documentation generator (javadoc), and some other development tools. The Java Runtime Environment itself consists of the Java Virtual Machine (JVM), supporting files, and core classes.

Introduction to Java

Typically, if you are only interested in running Java programs on your machine or browser, you only need to install JRE. However, if you would like to develop an application and do Java programming, you will need JDK.

What is the Java Runtime Environment (JRE)?

Java Run-time Environment (JRE) is the part of the Java Development Kit (JDK). It is a freely available software distribution which has Java Class Library, specific tools, and a stand-alone JVM. It is the most common environment available on devices to run java programs. The source Java code gets compiled and converted to Java bytecode. If you wish to run this bytecode on any platform, you require JRE. The JRE loads classes, verify access to memory, and retrieves the system resources. JRE acts as a layer on the top of the operating system.

It also includes:

  • Technologies which get used for deployment such as Java Web Start.
  • Toolkits for user interface like Java 2D.
  • Integration libraries like Java Database Connectivity (JDBC) and Java Naming and Directory Interface (JNDI).
  • Libraries such as Lang and util.
  • Other base libraries like Java Management Extensions (JMX)Java Native Interface (JNI) and Java for XML Processing (JAX-WS).
Introduction to Java

What Is An Integrated Development Environment (IDE)?

Integrated development environments (IDE) are applications that facilitate the development of other applications. Designed to encompass all programming tasks in one application, one of the main benefits of an IDE is that they offer a central interface with all the tools a developer needs, including:

  • Code editor: Designed for writing and editing source code, these editors are distinguished from text editors because work to either simplify or enhance the process of writing and editing of code for developers
  • Compiler: Compilers transform source code that is written in a human-readable/writable language in a form that computers can execute.
  • Debugger: Debuggers are used during testing and can help developers debug their application programs.
  • Build automation tools: These can help automate developer tasks that are more common to save time.

Java Install

Some PCs might have Java
already installed.

To check if you have Java
installed on a Windows PC, search in the start bar for Java or type the
following in Command Prompt (cmd.exe):

If Java is installed, you will see something like this (depending on version):

If you do not have Java installed on your computer, you can download it for free at

Setup for Windows

To install Java on Windows:

  1. Go to “System Properties” (Can be found on Control Panel > System and Security > System > Advanced System Settings)                                                               
  2. Click on the “Environment variables” button under the “Advanced” tab                                                       
  3. Then, select the “Path” variable in System variables and click on the “Edit” button                                   
  4. Click on the “New” button and add the path where Java is installed, followed by \bin. By default, Java is installed in C:\Program Files\Java\jdk-11.0.1 (If nothing else was specified when you installed it). In that case, You will have to add a new path with: C:\Program Files\Java\jdk-11.0.1\bin
    Then, click “OK”, and save the settings                                                                                                     
  5. At last, open Command Prompt (cmd.exe) and type java -version to see if Java is running on your machine

    Write the following in the command line (cmd.exe):

    If Java was successfully installed, you will see something like this (depending on version):                     

Java Syntax

In the previous chapter, we created a Java file called, and we used the following code to print “Hello World” to the screen:

public class Main {
	public static void main(String[] args) {
		System.out.println("Hello World");

Example explained

Every line of code that runs in Java must be inside a class. In our example, we named the class Main. A class should always start with an uppercase first letter.

Note: Java is case-sensitive: “MyClass” and “myclass” has different meaning.

The name of the java file must match the class name. When saving the file, save it using the class name and add “.java” to the end of the filename. To run the example above on your computer, make sure that Java is properly installed. The output should be

Hello world

The main Method

The main() method is required and you will see it in every Java program:

Any code inside the main() method will be executed. Don’t worry about the keywords before and after main. You will get to know them bit by bit while reading this tutorial.

For now, just remember that every Java program has a class name which must match the filename, and that every program must contain the main() method.


Inside the main() method, we can use the println() method to print a line of text to the screen:

public class Main {
	public static void main(String[] args) {
		System.out.println("Hello World");

Note: The curly braces {} marks the beginning and the end of a block of code.

System is a built-in Java class that contains useful members, such as out, which is short for “output”. The println() method, short for “print line”, is used to print a value to the screen (or a file).

Don’t worry too much about Systemout and println(). Just know that you need them together to print stuff to the screen.

You should also note that each code statement must end with a semicolon (;).

Java Output

You learned from the previous chapter that you can use the println() method to output values or print text in Java:

System.out.println("Hello world");

You can add as many println() methods as you want. Note that it will add a new line for each method:

System.out.println("Hello world");

The Print() Method

There is also a print() method, which is similar to println().

The only difference is that it does not insert a new line at the end of the output:

System.out.print("Hello world");
System.out.print("I will print on the same line.");

Java Comments

Comments can be used to explain Java code, and to make it more readable. It can also be used to prevent execution when testing alternative code.

Single-line Comments

Single-line comments start with two forward slashes (//).

Any text between // and the end of the line is ignored by Java (will not be executed).

This example uses a single-line comment before a line of code:

// This is a comment
System.out.println("Hello world");

Java Multi-line Comments

Multi-line comments start with /* and ends with */.

Any text between /* and */ will be ignored by Java.

This example uses a multi-line comment (a comment block) to explain the code:

/* The code below will print the words Hello World
 to the screen, and it is amazing */
System.out.println("Hello world");

Java Variables

Variables are containers for storing data values.

In Java, there are different types of variables, for example:

  • String – stores text, such as “Hello”. String values are surrounded by double quotes
  • int – stores integers (whole numbers), without decimals, such as 123 or -123
  • float – stores floating point numbers, with decimals, such as 19.99 or -19.99
  • char – stores single characters, such as ‘a’ or ‘B’. Char values are surrounded by single quotes
  • boolean – stores values with two states: true or false

Declaring (Creating) Variables

To create a variable, you must specify the type and assign it a value:

type variableName = value

Where type is one of Java’s types (such as int or String), and variableName is the name of the variable (such as x or name). The equal sign is used to assign values to the variable.

To create a variable that should store text, look at the following example:


Create a variable called name of type String and assign it the value “sheikh“:

String name = "Sheikh";


Create a variable called myNum of type int and assign it the value 15:

int myNum = 15;

Final Variables

If you don’t want others (or yourself) to overwrite existing values, use the final keyword (this will declare the variable as “final” or “constant”, which means unchangeable and read-only):


final int myNum = 15;
myNum = 20;  // will generate an error: cannot assign a value to a final variable

Other Types

A demonstration of how to declare variables of other types:


int myNum = 5;
float myFloatNum = 5.99f;
char myLetter = 'D';
boolean myBool = true;
String myText = "Hello";

Display Variables

The println() method is often used to display variables.

To combine both text and a variable, use the + character:


String name = "Sheikh";
System.out.println("Hello " + name);

You can also use the + character to add a variable to another variable:


String firstName = "Sheikh";
String lastName = "Ameen";
String fullName = firstName + lastName;

For numeric values, the + character works as a mathematical operators (notice that we use int (integer) variables here):


int x = 5;
int y = 6;
System.out.println(x + y); 
// Print the value of x + y

Declare Many Variables

To declare more than one variable of the same type, you can use a comma-separated list:


Instead of writing:

int x = 5;
int y = 6;
int z = 50;
System.out.println(x + y + z);

You can simply write:

int x = 5, y = 6, z = 50;
System.out.println(x + y + z);

One Value to Multiple Variables

You can also assign the same value to multiple variables in one line:


int x, y, z;
x = y = z = 50;
System.out.println(x + y + z);


All Java variables must be identified with unique names.

These unique names are called identifiers.

Identifiers can be short names (like x and y) or more descriptive names (age, sum, totalVolume).

Note: It is recommended to use descriptive names in order to create understandable and maintainable code:


// Good
int minutesPerHour = 60;

// OK, but not so easy to understand what m actually is
int m = 60;

Java Data Types

As explained in the previous chapter, a variable in Java must be a specified data type:


int myNum = 5;               // Integer (whole number)
float myFloatNum = 5.99f;    // Floating point number
char myLetter = 'D';         // Character
boolean myBool = true;       // Boolean
String myText = "Hello";     // String

Data types are divided into two groups:

  • Primitive data types – includes byteshortintlongfloatdoubleboolean and char
  • Non-primitive data types – such as String, Arrays and Classes (you will learn more about these in a later chapter)


Primitive Data Types

A primitive data type specifies the size and type of variable values, and it has no additional methods.

There are eight primitive data types in Java:

Data Type Size Description
byte 1 byte Stores whole numbers from -128 to 127
short 2 bytes Stores whole numbers from -32,768 to 32,767
int 4 bytes Stores whole numbers from -2,147,483,648 to 2,147,483,647
long 8 bytes Stores whole numbers from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
float 4 bytes Stores fractional numbers. Sufficient for storing 6 to 7 decimal digits
double 8 bytes Stores fractional numbers. Sufficient for storing 15 decimal digits
boolean 1 bit Stores true or false values
char 2 bytes Stores a single character/letter or ASCII values


Primitive number types are divided into two groups:

Integer types stores whole numbers, positive or negative (such as 123 or -456), without decimals. Valid types are byteshortint and long. Which type you should use, depends on the numeric value.

Floating-point types represent numbers with a fractional part, containing one or more decimals. There are two types: float and double.

Even though there are many numeric types in Java, the most used for numbers are int (for whole numbers) and double (for floating-point numbers). However, we will describe them all as you continue to read.

Integer Types


The byte data type can store whole numbers from -128 to 127. This can be used instead of int or other integer types to save memory when you are certain that the value will be within -128 and 127:


byte myNum = 100;


The short data type can store whole numbers from -32768 to 32767:


short myNum = 5000;


The int data type can store whole numbers from -2147483648 to 2147483647. In general, and in our tutorial, the int data type is the preferred data type when we create variables with a numeric value.


int myNum = 100000;


The long data type can store whole numbers from -9223372036854775808 to 9223372036854775807. This is used when int is not large enough to store the value. Note that you should end the value with an “L”:


long myNum = 15000000000L;

Floating Point Types

You should use a floating point type whenever you need a number with a decimal, such as 9.99 or 3.14515.

The float and double data types can store fractional numbers. Note that you should end the value with an “f” for floats and “d” for doubles:

Float Example

float myNum = 5.75f;

Double Example

double myNum = 19.99d;

Use float or double?

The precision of a floating point value indicates how many digits the value can have after the decimal point. The precision of float is only six or seven decimal digits, while double variables have a precision of about 15 digits. Therefore it is safer to use double for most calculations.

Scientific Numbers

A floating point number can also be a scientific number with an “e” to indicate the power of 10:


float f1 = 35e3f;
double d1 = 12E4d;

Boolean Types

A boolean data type is declared with the boolean keyword and can only take the values true or false:


boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun);     // Outputs true
System.out.println(isFishTasty);   // Outputs false


The char data type is used to store a single character. The character must be surrounded by single quotes, like ‘A’ or ‘c’:


char myGrade = 'B';

Alternatively, if you are familiar with ASCII values, you can use those to display certain characters:


char myVar1 = 65, myVar2 = 66, myVar3 = 67;


The String data type is used to store a sequence of characters (text). String values must be surrounded by double quotes:


String greeting = "Hello World";

Non-Primitive Data Types

Non-primitive data types are called reference types because they refer to objects.

The main difference between primitive and non-primitive data types are:

  • Primitive types are predefined (already defined) in Java. Non-primitive types are created by the programmer and is not defined by Java (except for String).
  • Non-primitive types can be used to call methods to perform certain operations, while primitive types cannot.
  • A primitive type has always a value, while non-primitive types can be null.
  • A primitive type starts with a lowercase letter, while non-primitive types starts with an uppercase letter.
  • The size of a primitive type depends on the data type, while non-primitive types have all the same size.

Examples of non-primitive types are Strings, Arrays, Classes, Interface etc.

Java Operators

Operators are used to perform operations on variables and values.

In the example below, we use the + operator to add together two values:


int x = 100 + 50;

Although the + operator is often used to add together two values, like in the example above, it can also be used to add together a variable and a value, or a variable and another variable:


int sum1 = 100 + 50;        // 150 (100 + 50)
int sum2 = sum1 + 250;      // 400 (150 + 250)
int sum3 = sum2 + sum2;     // 800 (400 + 400)

Java divides the operators into the following groups:

  • Arithmetic operators
  • Assignment operators
  • Comparison operators
  • Logical operators
  • Bitwise operators

Arithmetic Operators

Arithmetic operators are used to perform common mathematical operations.

Operator Name Description Example  
+ Addition Adds together two values x + y  
Subtraction Subtracts one value from another x – y  
* Multiplication Multiplies two values x * y  
/ Division Divides one value by another x / y  
% Modulus Returns the division remainder x % y  
++ Increment Increases the value of a variable by 1 ++x  
Decrement Decreases the value of a variable by 1 –x  

Java Assignment Operators

Assignment operators are used to assign values to variables.

In the example below, we use the assignment operator (=) to assign the value 10 to a variable called x:


int x = 10;

The addition assignment operator (+=) adds a value to a variable:


int x = 10;
x += 5;

A list of all assignment operators:

Operator Example Same As  
= x = 5 x = 5  
+= x += 3 x = x + 3  
-= x -= 3 x = x – 3  
*= x *= 3 x = x * 3  
/= x /= 3 x = x / 3  
%= x %= 3 x = x % 3  
&= x &= 3 x = x & 3  
|= x |= 3 x = x | 3  
^= x ^= 3 x = x ^ 3  
>>= x >>= 3 x = x >> 3  
<<= x <<= 3 x = x << 3  

Java Comparison Operators

Comparison operators are used to compare two values:

Operator Name Example  
== Equal to x == y  
!= Not equal x != y  
> Greater than x > y  
< Less than x < y  
>= Greater than or equal to x >= y  
<= Less than or equal to x <= y  

Java Logical Operators

Logical operators are used to determine the logic between variables or values:

Operator Name Description Example  
&&  Logical and Returns true if both statements are true x < 5 &&  x < 10  
||  Logical or Returns true if one of the statements is true x < 5 || x < 4  
! Logical not Reverse the result, returns false if the result is true !(x < 5 && x < 10)

Java Strings

Strings are used for storing text.

String variable contains a collection of characters surrounded by double quotes:


Create a variable of type String and assign it a value:

String greeting = "Hello";

String Length

A String in Java is actually an object, which contain methods that can perform certain operations on strings. For example, the length of a string can be found with the length() method:


System.out.println("The length of the txt string is: " + txt.length());

More String Methods

There are many string methods available, for example toUpperCase() and toLowerCase():


String txt = "Hello World";
System.out.println(txt.toUpperCase());   // Outputs "HELLO WORLD"
System.out.println(txt.toLowerCase());   // Outputs "hello world"

Finding a Character in a String

The indexOf() method returns the index (the position) of the first occurrence of a specified text in a string (including whitespace):


String txt = "Please locate where 'locate' occurs!";
System.out.println(txt.indexOf("locate")); // Outputs 7

String Concatenation

The + operator can be used between strings to combine them. This is called concatenation:


String firstName = "John";
String lastName = "Doe";
System.out.println(firstName + " " + lastName);

Note that we have added an empty text (” “) to create a space between firstName and lastName on print.

You can also use the concat() method to concatenate two strings:


String firstName = "John ";
String lastName = "Doe";

Adding Numbers and Strings

Java uses the + operator for both addition and concatenation.
Numbers are added. Strings are concatenated.
If you add two numbers, the result will be a number:


int x = 10;
int y = 20;
int z = x + y;  // z will be 30 (an integer/number)

If you add two strings, the result will be a string concatenation:


String x = "10";
String y = "20";
String z = x + y;  // z will be 1020 (a String)

If you add a number and a string, the result will be a string concatenation:


String x = "10";
int y = 20;
String z = x + y;  // z will be 1020 (a String)

Use your left or right arrow keys or drag and drop with the mouse to change the gradient position. Press the button to change the color or remove the control point.

Special Characters

Because strings must be written within quotes, Java will misunderstand this string, and generate an error:

String txt = "We are the so-called "Vikings" from the north.";

The solution to avoid this problem, is to use the backslash escape character.

The backslash (\) escape character turns special characters into string characters:

Escape character Result Description
\’ Single quote
\” Double quote
\\ \ Backslash

The sequence \"  inserts a double quote in a string:


String txt = "We are the so-called \"Vikings\" from the north.";

The sequence \'  inserts a single quote in a string:


String txt = "It\'s alright.";

The sequence \\  inserts a single backslash in a string:


String txt = "The character \\ is called backslash.";

Six other escape sequences are valid in Java:

Code Result  
\n New Line  
\r Carriage Return  
\t Tab  
\b Backspace  
\f Form Feed

Java Math

The Java Math class has many methods that allows you to perform mathematical tasks on numbers.


The Math.max(x,y) method can be used to find the highest value of x and y:


Math.max(5, 10);


The Math.min(x,y) method can be used to find the lowest value of x and y:


Math.min(5, 10);


The Math.sqrt(x) method returns the square root of x:




The Math.abs(x) method returns the absolute (positive) value of x:



Random Numbers

Math.random() returns a random number between 0.0 (inclusive), and 1.0 (exclusive):



To get more control over the random number, e.g. you only want a random number between 0 and 100, you can use the following formula:


int randomNum = (int)(Math.random() * 101);  // 0 to 100

Java Booleans

Very often, in programming, you will need a data type that can only have one of two values, like:

  • YES / NO
  • ON / OFF

For this, Java has a boolean data type, which can take the values true or false.

Boolean Values

A boolean type is declared with the boolean keyword and can only take the values true or false:


boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun);     // Outputs true
System.out.println(isFishTasty);   // Outputs false

However, it is more common to return boolean values from boolean expressions, for conditional testing (see below).

Boolean Expression

Boolean expression is a Java expression that returns a Boolean value: true or false.

You can use a comparison operator, such as the greater than (>) operator to find out if an expression (or a variable) is true:


int x = 10;
int y = 9;
System.out.println(x > y); // returns true, because 10 is higher than 9

Or even easier:


System.out.println(10 > 9); // returns true, because 10 is higher than 9

In the examples below, we use the equal to (==) operator to evaluate an expression:


int x = 10;
System.out.println(x == 10); // returns true, because the value of x is equal to 10


System.out.println(10 == 15); // returns false, because 10 is not equal to 15

Java Conditions and If Statements

Java supports the usual logical conditions from mathematics:

  • Less than: a < b
  • Less than or equal to: a <= b
  • Greater than: a > b
  • Greater than or equal to: a >= b
  • Equal to a == b
  • Not Equal to: a != b

You can use these conditions to perform different actions for different decisions.

Java has the following conditional statements:

  • Use if to specify a block of code to be executed, if a specified condition is true
  • Use else to specify a block of code to be executed, if the same condition is false
  • Use else if to specify a new condition to test, if the first condition is false
  • Use switch to specify many alternative blocks of code to be executed

The if Statement

Use the if statement to specify a block of Java code to be executed if a condition is true.


if (condition) {
  // block of code to be executed if the condition is true

Note that if is in lowercase letters. Uppercase letters (If or IF) will generate an error.

In the example below, we test two values to find out if 20 is greater than 18. If the condition is true, print some text:


if (20 > 18) {
  System.out.println("20 is greater than 18");

We can also test variables:


int x = 20;
int y = 18;
if (x > y) {
  System.out.println("x is greater than y");

Example explained

In the example above we use two variables, x and y, to test whether x is greater than y (using the > operator). As x is 20, and y is 18, and we know that 20 is greater than 18, we print to the screen that “x is greater than y”.

The else Statement

Use the else statement to specify a block of code to be executed if the condition is false.


if (condition) {
  // block of code to be executed if the condition is true
} else {
  // block of code to be executed if the condition is false


int time = 20;
if (time < 18) {
  System.out.println("Good day.");
} else {
  System.out.println("Good evening.");
// Outputs "Good evening."

Example explained

In the example above, time (20) is greater than 18, so the condition is false. Because of this, we move on to the else condition and print to the screen “Good evening”. If the time was less than 18, the program would print “Good day”.

The else if Statement

Use the else if statement to specify a new condition if the first condition is false.


if (condition1) {
  // block of code to be executed if condition1 is true
} else if (condition2) {
  // block of code to be executed if the condition1 is false and condition2 is true
} else {
  // block of code to be executed if the condition1 is false and condition2 is false


int time = 22;
if (time < 10) {
  System.out.println("Good morning.");
} else if (time < 20) {
  System.out.println("Good day.");
} else {
  System.out.println("Good evening.");
// Outputs "Good evening."

Example explained

In the example above, time (22) is greater than 10, so the first condition is false. The next condition, in the else if statement, is also false, so we move on to the else condition since condition1 and condition2 is both false – and print to the screen “Good evening”.

However, if the time was 14, our program would print “Good day.”

Short Hand If…Else

There is also a short-hand if else, which is known as the ternary operator because it consists of three operands.

It can be used to replace multiple lines of code with a single line, and is most often used to replace simple if else statements:


variable = (condition) ? expressionTrue :  expressionFalse;

Instead of writing:


int time = 20;
if (time < 18) {
  System.out.println("Good day.");
} else {
  System.out.println("Good evening.");

You can simply write:


int time = 20;
String result = (time < 18) ? "Good day." : "Good evening.";

Java Switch Statements

Use the switch statement to select one of many code blocks to be executed.


switch(expression) {
  case x:
    // code block
  case y:
    // code block
    // code block

This is how it works:

  • The switch expression is evaluated once.
  • The value of the expression is compared with the values of each case.
  • If there is a match, the associated block of code is executed.
  • The break and default keywords are optional, and will be described later in this chapter

The example below uses the weekday number to calculate the weekday name:


int day = 4;
switch (day) {
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 6:
  case 7:
// Outputs "Thursday" (day 4)

The break Keyword

When Java reaches a break keyword, it breaks out of the switch block.

This will stop the execution of more code and case testing inside the block.

When a match is found, and the job is done, it’s time for a break. There is no need for more testing.

A break can save a lot of execution time because it “ignores” the execution of all the rest of the code in the switch block.

The default Keyword

The default keyword specifies some code to run if there is no case match:


int day = 4;
switch (day) {
  case 6:
    System.out.println("Today is Saturday");
  case 7:
    System.out.println("Today is Sunday");
    System.out.println("Looking forward to the Weekend");
// Outputs "Looking forward to the Weekend"

Note that if the default statement is used as the last statement in a switch block, it does not need a break.


Leave a Reply

Your email address will not be published. Required fields are marked *