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)

Summary

In this chapter, we zoomed in on the heap space. We started by examining the different generations on the heap – namely, the young generation space and the old generation (tenured) space.

The young generation space is divided into two spaces: the eden and survivor spaces. The eden space is where new objects are allocated. The survivor space consists of two equally sized spaces, namely S0 and S1. The minor (young generation) garbage collector uses these survivor spaces when reclaiming memory. Minor GC is triggered when there is not enough contiguous space to allocate an object in the eden space. Using pseudocode and diagrams, we examined how the minor garbage collector utilizes the generations and spaces. We then used an example that had several use case scenarios to reinforce the concepts.

The tenured space is where longer-lived objects reside. We saw that if an object survives several GC cycles, the object moves to tenured space to make subsequent minor GC cycles...