Java 8

Java8 Futures: Introduction & Best Practices

Reading Time: 3 minutes Hi there! Today, we are going to talk about Futures in Java. We will also look at some of the best practices related to them. What are Java Futures and why do we need them? To understand this better, firstly we must understand what is blocking and why is it bad for our software. BLOCKING – A blocking/long-running call occurs when a thread is tied Continue Reading

Lambda Expressions: An Introduction in Java 8

Reading Time: 2 minutes Lambda expressions were one of the new features that was introduced in Java 8. They help clean up verbose code by providing a concise and local way to reduce redundancy by keeping code short and self-explanatory. In addition to saving code, Java’s lambda expressions are important in functional programming. They allow developers to write in a functional style by acting as functions without belonging to Continue Reading

Operations in Java Streams

Reading Time: 3 minutes Hi guys, with release of Java 8 we get new features like lambda functions, streams etc. and in this blog we are going to have an overview of Streams.Streams reduces the effort for using and accessing the elements in any Collection. So here we will see what are different types of operation in Streams and when to use them. Streams Definition Streams are used when Continue Reading

Functional Java: It’s good to be lazy

Reading Time: 5 minutes In Java, we are often tempted towards writing a code which is executed eagerly. There’s a good reason for that – eager code is easy to write and to reason about. But delaying commitments until the last responsible moment is a good agile practice. When executing the code, we can gain performance by being just a little lazy.  In this blog, we will try to Continue Reading

Merge Lists of Map to Map, Java 8 Style!

Reading Time: 3 minutes Today, while doing my work and having fun programming, I came across a problem that looked pretty easy in the beginning, but after starting doing it, had to take help of Google and read from different sites to get to a nice implementation. So, let’s look at the problem and how to solve it. The Problem Well, you guys probably already have guessed what the Continue Reading

Java concurrency: Reentrant Locks

Reading Time: 3 minutes Hello readers! Welcome to another blog in the Java concurrency series. Today, we are going to look at the Reentrant Locks in Java. What it is, how to use it, and mainly, what is the difference between using Reentrant Locks and synchronization. So, let’s dive straight into it. Reentrant Locks Reentrant locks work just like the synchronized locks in java, but have much more facilities Continue Reading

How to deal with Inheritance while using Lombok builder

Reading Time: 2 minutes Today, I came across a problem and found a beautiful solution for it, which is pretty much straight forward, but the problem may occur to anyone while using the Lombok Library for java. So let’s look at the problem. The Problem I have a class Person, which consists of some fields. It is annotated with the @Builder annotation of lombok, so that lombok can generate Continue Reading

Basics of Streams In Java8

Reading Time: 2 minutes Streams are introduced in java 8. It is defined in java.util.stream package. A stream is sequence of objects which supports various methods. That can be pipelined to produce the result. Features of Stream Stream is not a data structure. It takes input from various sources (like array, collection, data structure) performs an operation and gives output. It does not store element. It does not change Continue Reading

Concurrency API

Guide to Java 8 Concurrency API using Executors

Reading Time: 3 minutes Working with the Thread class in Java can be very tedious and error-prone. Due to this reason, Concurrency API was introduced back in 2004 with the release of Java 5 and then enhanced with every new Java release.The API is located in package java.util.concurrent. It contains a set of classes that make it easier to develop concurrent (multithreaded) applications in Java.  The executor services are one of the most Continue Reading