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)


In this chapter, we have seen how the GC of the heap works in more depth. Objects on the heap are eligible for GC when they don’t have a connection to the stack anymore, whether directly or indirectly.

The garbage collector determines which objects are eligible for GC in the marking phase. Objects that have a connection to the stack are marked. The objects that are eligible for GC are unmarked.

After this marking phase, the actual removal happens in the sweeping phase. We discussed three kinds of sweeping, normal sweeping, sweeping with compacting, and sweeping with copying.

Then, we discussed the different implementations of the garbage collectors. A subset of them are the generational garbage collectors. These garbage collectors focus on one of the generations of the heap and, consequently, do not need to scan all the objects of the heap during the marking phase. After that, we discussed five common implementations of the garbage collector.

In the next...