Simple play icon Course

Understanding the Java Virtual Machine: Memory Management

by Kevin Jones

This course covers all aspects of garbage collection in Java, including how memory is split into generations and managed and how the different collectors do their job. We also cover the classes you can use to interact with the garbage collection, such as Soft, Weak, and PhantomReference.

What you'll learn

Garbage Collection (GC) is a fundamental part of Java. Understanding how GC works is core to understanding how the Java Virtual Machine (JVM) works and will help you write better applications and to improve the performance of those applications. This course will look at all aspects of garbage collection, including looking at what 'young' and 'old' generations are, how the JVM moves objects between eden and survivor spaces, how memory is promoted into the 'old' generation, how different garbage collectors work, and how they affect the running of your application. We will also look at 'card tables' and how they help manage memory in the old generation. We will examine each of the garbage collectors including the serial and parallel collectors; the CMS collector and the G1 collector. We cover the tools you can use to monitor GC including jstat and VisualVM. Finally we look at ways you interact with the GC through classes Such as Soft, Weak, and PhantomReference and their associated helpers ReferenceQueue and WeakHashMap.

About the author

A long time ago in a university far, far away Kevin fell in love with programming. Initially on the university's DEC20 computer doing BASIC and Pascal and a little bit of Fortran. His first job had him writing batch PL/1 on an IBM mainframe where he also discovered the arcane delights of JCL. He soon realized the multiuser systems were not for him after discovering the delights of dBase IV on IBM PCs. From here it was all downhill as he became addicted to C and the Windows API. Just missing out ... more

Ready to upskill? Get started