Loops in Java

Loops in java are used to execute a set of statements repeatedly until a condition is satisfied or to iterate a collection of objects.

There are 4 types of loop:-

  • The basic for loop
  • The enhanced for loop
  • The while loop
  • The do while loop
  • The forEach loop

The basic for loop

The basic for loop has the following syntax:-

for(initialization ; condition ;counter increment/decrement){

}

If we have only one statement in the for loop then the curly braces are not mandatory.

Step 1 :- The initialization part of the loop executes for the first time.

Step 2 :- The condition is checked .If the expression evaluates to true the statements inside the for block is executed else the control flow exits the loop that is step 4

Step 3 :- The counter is incremented or decremented.

We repeat 2 and 3 phases until the condition is not met and the for loop is terminated

Step 4 :- Exit the loop

The enhanced for loop

The enhanced for loop is used to iterate a collection of objects or an array in java

Syntax:-

for(data_type item:collection/array){

//statements ….

}

  • Item is the single item from the collection 
  • Collection /array is the variable which you have to iterate or loop through 

Here’s the flow of the enhanced for loop:-

  • Iterate through each item in the array /collection
  • Places each item in the variable 
  • Executes the body of the loop

The loop iterates through all the objects in the collection/array one by one.

The while loop

The while loop is used to execute a set of statements until a condition is satisfied.

Here’s the flow:-

  1. Loop starts with the condition.If the condition is true step 2 is executed.If false the loop exists that is step 3.
  2. The statements inside the loop is executed .Usually the statements also update the variable being used in the conditional statement(at the start of the loop)
  3. Exit the loop

The do while Loop

The do while loop make sure the statements in the block is executed at least once irrespective of the conditional expression in while .

Syntax :-

Do {

..//statements 

}while(expression);
It ends with a colon.

Here’s the flow:-

Step1 :- The statements is executed in the do while block 

Step2 :- The expression is evaluated.If it is true the statement in the block is executed else the control flow exists the do while block that is step3 

Step3 :- Exit the do while block.

The forEach method

In Java 1.8 a new forEach method is introduced to iterate the elements.It is defined in Iterable and Stream interface.It’s a default method in iterable interface.

We can loop a collection of objects using the forEach method as the collection interface extends the Iterable interface.

The forEach method take functional interface (Consumer ) as the arguments so we can use lambda expressions along with the forEach method.

That’s all about loops in Java.I hope you enjoyed reading this article.

Happy Coding 🙂



Default Methods In Java

Default methods allows us to add new functionality to new or existing interfaces without breaking the existing functionality of legacy code.

Prior to Java 1.8 interfaces did not allow default interfaces and it was very difficult to modify an existing interface without impacting the class which implemented the interface.For instance if a new method is added to an interface ,it  needs to be implemented in all the classes implementing that interface.

Example

Consider the following interface which is an existing piece of code:-

The interface is implemented by various branches of the Good Food Restaurant.

We later plan to add the restaurant working hours .But if we add it to the interface ,the method needs to be implemented in all the three classes.This can be a lot of work especially in big projects where the interface is implemented in several different classes and multiple new method are added in the interface.

Default method comes to the rescue in all these cases.With default methods its not mandatory for an implementing class to implement the default method , its optional.

A default method is defined in an interface and if the implementing class do provide the implementation of the default method then it overrides the default method definition.Here’s the summary when you implement an interface that contains a default method:-

  • Do not redefine the default method in the implementing class ,which lets you use the default method definitions whenever it is called.
  • Redefine the default method, in this case it is overridden

Extending an interface with a default method

The following rules apply when you extend an interface that contains a default method along with one more scenario:-

  • Do not redefine the default method in the implementing class ,which lets you use the default method definitions whenever it is called.
  • Redefine the default method, in this case it is overridden
  • Redeclare the default method which makes it abstract.

That’s all about default methods in Java.I hope you enjoyed reading this articles.

Java Lambda Expressions

What are Lambda Expression?

Lambda expressions were introduced in Java 1.8 and it’s the first step towards functional programming.Lambda expressions allow you to treat functionality as a method arguments.The functionality can be passed around to different methods as lambda expressions and executed on demand.It also make the code clean and concise.

In short lambda expressions are basically blocks of code that can be passed around methods as arguments ,assigned to variables and returned from function calls.

Why they are used?

Anonymous classes enable implement a base class or an interface without giving a name.But for classes/interfaces where there is only one method even anonymous classes looks verbose and lengthy.Lambda expression lets you implement single method classes/interfaces in a much more compact way.

Lambda Expression and Functional Interfaces

Lambda expression and functional interfaces go hand in hand. Lambda expressions are used to implement the abstract method of the functional interface. Here’s some of the most commonly used functional interfaces.You can find the complete list of functional interfaces at https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html

Consumers

It’s a built in functional interface in the java.util.function package.It can be used in all the context where an object needs to be consumed and it has a void return type.For instance it can accept some object ,perform some operation on the object and display the result without returning any result.It accepts a single input argument.

Predicates

A functional interface and represents an operation that takes a single input and returns a boolean value.

Function

It represents a function that accepts one argument and returns a result.For instance it can accept an object ,perform some operation on the object and return the modified object.

Suppliers

It represents a function that do not take any arguments but returns a result.

In the lambda expression any of these and many other functional interfaces can be implemented depending on the requirements.

Lambda Expression Syntax

(argument-list) -> {body}  

  • Argument List can be empty or we can have as many arguments as we want
  • Arrow Token (->):- It is used to link arguments with the body
  • Body :- It contains expressions and statements .The curly braces are optional if there is only one statement

Example

We have an employee class and an interface.

Without Lambda Expression the code will look like this.We are using anonymous class in this case:-

With lambda expressions:-

Lambda expressions is pretty versatile feature in Java 1.8 and this article gives you a glimpse of it.

Let me know you inputs on lambda expressions.I would be glad to hear from my readers. Happy Coding 🙂

Anonymous Class in Java

Anonymous classes can be tricky to understand for beginners.Mainly because the syntax can look verbose or at least it looked very confusing to me when I started my career as a java developer.So let’s talk anonymous classes today.

Anonymous classes were introduced in java to make code more concise and reduce the lines of code.Here’s some facts about anonymous classes

  • We can declare and instantiate an anonymous class at the same time.
  • They do not have a name.
  • An anonymous class have access to the members of its enclosing class.
  • An anonymous class can not access local variable in its enclosing scope that are not final or effectively final.
  • A variable declaration in an anonymous shadows any variable in its enclosing class with the same name
  • Can not declare static initialization blocks in anonymous classes.
  • Can not declare a constructor in anonymous classes

Example of anonymous class:-

When you run the program , you will get the following output:-

Syntax of Anonymous Classes:-

An anonymous class is an expression.It contains class definition inside the curly braces.

It has the following pieces:-

  • It starts with the new operator.
  • The name of the interface to implement or the class name.
  • Parenthesis that contain arguments to the constructor just the way we do it in a normal object instantiation.
  • A body of the anonymous class.The body starts and ends with curly braces and colon at the end of the ending braces

You can declare the following in anonymous classes:-

  • Extra Methods which are not originally declared in the interface or the class you are implementing
  • Initialization blocks
  • Fields
  • Local Classes

You can create an anonymous class from an interface or a class or an abstract class.

That’s all about anonymous classes . I hope you enjoyed reading about anonymous classes.Have fun with coding.

How to Configure Java 1.8 On Windows

In this post I am going to explain how to install Java 1.8 on your machine and verify the same.

Here’s the steps:-

Install Java 1.8

You can install Java1.8 from Oracle website.Here’s the link:-

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

You will see there are two executable files for windows, one for 64 bit and another for 86 bit.Check you System specification by going to Control Panel -> System and Security ->System.

You need to download the executable file and run it on your local machine.By default the java package will be installed under C -> Program Files->Java. But you can change the path as per your specifications.

After your java package is installed you will get the following screen:-

Set Environment Variables

You need the specify the path to the java folder using the PATH variable under Environment variables of your machine. You can access the environment variables of your machine by right click on My Computer or This PC ->Properties

Set the Variables

User Variables:- 

JAVA_HOME :- C:\Program Files\Java\jdk1.8.0_221

CLASS_PATH:- %JAVA_HOME%\lib;%JAVA_HOME%\jre\lib

Environment Variable

Add the following in the path variable:- 

PATH:- your-unique-entries;%JAVA_HOME%\bin

Verify Java Installation

Check if Java is correctly installed on your machine.Go to command prompt/terminal and type the following command:-
java -version

Troubleshooting

If in the command prompt its shows that the java is not recognized as a command, revisit the variable and their paths.You will get this error when the user variable and environment variable paths do not point to the correct location of java folder.

Another reason might be that the Java package is not installed properly ,check your bin folder and jre folder.If required reinstall the java package and following the above steps again