
The Z Garbage Collector
In JDK 25
Erik OEsterlund(Author)
Chapman & Hall/CRC (Publisher)
1st Edition
Published on 21. May 2026
Book
Paperback/Softback
344 pages
978-1-032-97692-1 (ISBN)
Description
This book explains how the Z Garbage Collector was designed, why it was designed this way, the common pitfalls to avoid when using ZGC in JDK 25 and how to get useful information from the garbage collector.
Java is one of the most widely used programming languages in the world. It is a memory-safe language that completely relies on a good garbage collection (GC) algorithm to work well. The Z Garbage Collector of OpenJDK is arguably the most sophisticated production GC algorithm for any managed language runtime. The book goes into detail and covers core algorithm concepts of ZGC: coloured pointers, GC barriers, concurrent marking, concurrent relocation, concurrent stack scanning, concurrent root scanning, concurrent class unloading, concurrent generational collection, as well as showing how all of this works. It explains how the JVM evolved certain features to be able to accommodate ZGC, and covers the importance of each of the various GC heuristics and how they function.
With a unique angle right between academia and industry, this book is useful for computer science students and Java developers alike.
Java is one of the most widely used programming languages in the world. It is a memory-safe language that completely relies on a good garbage collection (GC) algorithm to work well. The Z Garbage Collector of OpenJDK is arguably the most sophisticated production GC algorithm for any managed language runtime. The book goes into detail and covers core algorithm concepts of ZGC: coloured pointers, GC barriers, concurrent marking, concurrent relocation, concurrent stack scanning, concurrent root scanning, concurrent class unloading, concurrent generational collection, as well as showing how all of this works. It explains how the JVM evolved certain features to be able to accommodate ZGC, and covers the importance of each of the various GC heuristics and how they function.
With a unique angle right between academia and industry, this book is useful for computer science students and Java developers alike.
More details
Language
English
Place of publication
United Kingdom
Publishing group
Taylor & Francis Ltd
Target group
Professional and scholarly
Professional Practice & Development
Illustrations
2 s/w Tabellen, 56 s/w Abbildungen, 56 s/w Zeichnungen
2 Tables, black and white; 56 Line drawings, black and white; 56 Illustrations, black and white
Dimensions
Height: 177 mm
Width: 253 mm
Thickness: 24 mm
Weight
688 gr
ISBN-13
978-1-032-97692-1 (9781032976921)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
Additional editions

E-Book
05/2026
Chapman and Hall
€68.49
Available for download

E-Book
05/2026
Chapman and Hall
€68.49
Available for download

Book
05/2026
1st Edition
Chapman & Hall/CRC
€148.50
Shipment within 10-20 days
Person
Erik OEsterlund did his BSc, MSc and PhD at the Linnaeus University, Sweden, where his interests and thesis work were all focused on garbage collection. At a memory management conference in Beijing 2012, Erik met Jesper Wilhelmsson from an Oracle development office in Stockholm. They were both surprised to find two Swedes in Beijing, interested in memory management. One thing led to another, and a research internship was arranged. There, Erik was talking about how a concurrent GC algorithm was needed. In 2016, Erik joined Oracle and started working on ZGC, and has been one of the core ZGC developers ever since.
Content
1. Introduction 2. ZGC Design Overview 3. ZGC Memory Layout 4. ZGC Generations 5. ZGC Barriers 6. ZGC Collection Phases 7. ZGC Root Scanning 8. ZGC Class Unloading 9. ZGC Collection Triggers 10. ZGC Thread Sizing Heuristics 11. ZGC Heap Sizing Policies 12. Safepoint Polls 13. Thread-Local Handshakes 14. Compiled Method Entry Barriers 15. Compiled Barriers 16. Virtual Threads 17. Deploying ZGC 18. Measuring Latency 19. Measuring Throughput 20. Measuring Memory Footprint 21. Observability 22. ZGC Heap Sizing