Book Image

Java Memory Management

By : Maaike van Putten, Dr. Seán Kennedy
Book Image

Java Memory Management

By: Maaike van Putten, Dr. Seán Kennedy

Overview of this book

Understanding how Java organizes memory is important for every Java professional, but this particular topic is a common knowledge gap for many software professionals. Having in-depth knowledge of memory functioning and management is incredibly useful in writing and analyzing code, as well as debugging memory problems. In fact, it can be just the knowledge you need to level up your skills and career. In this book, you’ll start by working through the basics of Java memory. After that, you’ll dive into the different segments individually. You’ll explore the stack, the heap, and the Metaspace. Next, you’ll be ready to delve into JVM standard garbage collectors. The book will also show you how to tune, monitor and profile JVM memory management. Later chapters will guide you on how to avoid and spot memory leaks. By the end of this book, you’ll have understood how Java manages memory and how to customize it for the benefit of your applications.
Table of Contents (10 chapters)

Learning how the spaces are used

To understand how these different spaces are used, we will explain them in two different stages. Initially, we will examine how the spaces are used in the minor GC algorithm. Subsequently, with the aid of an example, we will show the algorithm in action.

Understanding the minor garbage collection algorithm

Let us start with the minor GC algorithm. Figure 3.2 is high-level pseudocode of the minor GC process:

Figure 3.2 – Pseudocode of the minor garbage collection algorithm

Figure 3.2 – Pseudocode of the minor garbage collection algorithm

Let us examine the process outlined in the preceding figure using a Given-When-Then scenario.

  • Given: S0 as the target survivor and S1 as the source survivor spaces initially.
  • When: Minor garbage collector runs. In other words, the eden space does not have enough space for an object that the JVM wishes to allocate.
  • Then:
    • All live objects from the eden space are copied to the S0 survivor space. The ages of these objects are set...