Category: Blog

Java emerged 24 years ago as a response to the need for a platform-independent language. In other words, a language for creating software that can be embedded in any device.

Comprehensive Guide on Java Abstract Class Variables

Understanding Java Abstract Class Variables Abstraction is a foundational concept in programming, involving the process of distilling an object’s essential attributes and methods while concealing its internal complexities. This concept is effectively applied through the use of classes, which extend the principles of encapsulation. An illustrative example of this concept can be observed in Java,

Read More
How to Iterate over a Map in Java

The Java Map interface, unlike other interfaces, does not implement the Iterable interface. Consequently, a Map cannot be navigated using a for-each style for loop or an iterator. Despite this, a solution exists in the form of a collection-view of the Map. This alternative allows the utilization of either a for loop or an iterator

Read More
Java Exceptions: Checked vs. Unchecked

In the realm of Java programming, exceptions are events that disrupt the normal flow of program execution. Two primary types of exceptions exist in Java: checked and unchecked. Understanding the distinction between these two is crucial for robust and efficient Java programming. Aspect Checked Cases Unchecked Cases Definition Any case which must be handled or

Read More
Functions of Bytecode Verifier in Java

The popularity of the JVM and its extensive ecosystem of languages, IDEs, profilers, debuggers, APMs, and other valuable tools can be attributed to the JVM bytecode’s remarkable simplicity. Within just an hour, one can grasp the fundamentals of JVM bytecode, enabling them to swiftly delve into frameworks like ASM and start manipulating bytecode with ease.

Read More
Unlocking Harmony: Thread Synchronization in Java

Threads within the same process memory pose a challenge – potential collisions between operations. A bank application serves as an apt example, where uncoordinated threads accessing shared memory can lead to undesirable outcomes. Synchronization’s Necessity Imagine two BankTeller threads sharing a reference to the same BankAccount object. Without synchronization, a sleep() method causes a transaction

Read More