# Find from where java class is loaded | Class Loader SubSystem

In previous article, we discussed about 3 activites of Class Loader SubSystem i.e. Loading, Linking, Initialization and its Types of Class Loader i.e. Bootstrap Class Loader or primordial Class Loader, Extension Class Loader, Application Class Loader or System Class Loader. We have also seen how these Class loader uses Delegation hierarchy algorithm to load Classes into memory area. In this article we'll discuss more about Class Loader and how […]

# What is optional and why it is there? | Java8

Have you ever been tired of putting null checks all over the code to avoid any unnecessary NullPointerExceptions. Java 8 has introduced a new class Optional in java.util package. It is used to represent a value is present or absent. The main advantage of this new construct is that No more too many null checks and NullPointerException. It avoids […]

# Trapping Rain Water | Algorithm Problem

In this article, we are going to solve the trapping water problem also known as Raees's Liquor Tank problem. This kind of problems are asked very frequently in interviews and online programming challenges. Problem Statement We need to find the maximum volume of water/liquor that can be stored in between buildings or bars as shown in the […]

# Merge Sort | Sorting Algorithm

Merge Sort is a Divide and Conquer algorithm. Divide and conquer algorithms divide the original data into smaller sets of data to solve the problem. During the Mergesort process, the elements of the array or collections are divided into two parts. To split an array, Mergesort will take the middle element of the array and split the […]

# Bubble Sort | Sorting Algorithm

In Bubble sort, each element is compared with its adjacent element. If the first element is smaller than the second one, then the positions of the elements are interchanged, otherwise it is not changed. Then next element is compared with its adjacent element and the same process is repeated for all the elements in the array […]

# Performance Issue with HashSet RemoveAll() method

In our previous article on HashSet internals, we have seen internal implementation of its add(), remove(), contains(), clear(), iterator() and isEmpty() methods. One of our readers has raised question about How efficient is HashSet removeAll() method? As it requires detailed explanation, we have decided to write separate article on it. What does removeAll() method do? Before going into internals of […]

# Selection Sort | Algorithms

In our previous articles, we have seen two of the searching algorithms like Binary Search and Fibonacci Search alogorithm. In this article, we will go through Selection Sort algorithm. Selection sort is one of the simplest sorting algorithm available. Before going into more details we will see first see why sorting is required in programming. Sorting […]

# Fibonacci search

In this article, we will see one more searching algorithm Fibonacci search. This searching algorithm has some similarity with Binary Search that we have seen in our last article. Both of them works on sorted arrays. Fibonacci Search is a comparison-based technique that uses Fibonacci numbers to search an element in a sorted array. Fibonacci Search Definition […]

# Binary Search

There are many ways to search for the element from the given sorted array of n elements. Linear search, binary search, Fibonacci Search are few of them. In this article, we will see the binary search in detail. Binary search enables searching of the element in O(log n) time complexity. Binary Search (definition) Search a sorted […]

# How is HashSet implemented internally in Java?

In our previous article, we have seen internal implementation of SynchronizedMap and the difference between HashMap, Hashtable, SynchronizedMap and ConcurrentMap. In this article, we will understand how does HashSet work internally? How JDK implementers have reused HashMap effectively for HashSet implementation. The best way to understand internal implementation of any built-in Java class is by looking into its […]