0% found this document useful (0 votes)
21 views

Introduction To Gargbage Collection (GC)

This document introduces garbage collection (GC) in Java. It defines GC as the automatic freeing of objects no longer needed by the program. GC is advantageous because it frees programmers from manual memory management, but can add overhead. GC occurs when free heap space falls below a threshold. The JVM determines unreferenced objects using techniques like reference counting and more advanced algorithms. GC is non-deterministic, but real-time Java addresses this. The finalize() and gc() methods relate to GC in the Java API.

Uploaded by

mikhael12
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Introduction To Gargbage Collection (GC)

This document introduces garbage collection (GC) in Java. It defines GC as the automatic freeing of objects no longer needed by the program. GC is advantageous because it frees programmers from manual memory management, but can add overhead. GC occurs when free heap space falls below a threshold. The JVM determines unreferenced objects using techniques like reference counting and more advanced algorithms. GC is non-deterministic, but real-time Java addresses this. The finalize() and gc() methods relate to GC in the Java API.

Uploaded by

mikhael12
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Introduction to

Gargbage Collection (GC)

Sang Shin
Technology Evangelist
Sun Microsystems, Inc.
www.javapassion.com

1
Topics
• What is Garbage Collection (GC)?
• Why GC?
• When does GC occur?
• How does GC get performed?

2
What is Garbage
Collection (GC)?
What is GC?
• The Java virtual machine's heap stores all objects
created by a running Java application.
• Objects are created by the program through new
keyword, but never freed explicitly by the program
> No need to call free().
• Garbage collection is the process of automatically
freeing objects that are no longer needed
• An object is determined to be “no longer needed” when
there is no other object referencing to it
> Each object has a reference counter - when it becomes 0, it
means there is no other object referencing to it
4
Why Garbage
Collection (GC)?
Advantages of GC
• Programmer is free from memory management
> Less error prone code
• System cannot crash due to memory management
> More reliable application
> Memory-leak is still possible, however - you can use memory
profiler to find out where memory-leaking code is located

6
Disadvantages of GC
• GC could add overhead
> Many GC schemes are focused on minimizing GC overhead
• GC can occur in an non-deterministic way
> Real-time Java addresses this

7
When and How
Garbage Collection
(GC) Occur?
When Does GC Occur?
• JVM performs GC when it determines the amount of
free heap space is below a threshold
> This threshold can be set when a Java application is run

9
How Does JVM Perform GC?
• The garbage collector must somehow determine which
objects are no longer referenced and make available
the heap space occupied by such unreferenced objects.
• The simplest and most crude scheme is to keep
reference counter to each object
• There are many different schemes - years of research

10
Java API
GC Related Java API
• finalize() method in Object class
> Called by the garbage collector on an object when garbage
collection determines that there are no more references to
the object.
• gc() method in System class
> Runs the garbage collector.
> Calling the gc method suggests that the Java Virtual Machine
expend effort toward recycling unused objects in order to
make the memory they currently occupy available for quick
reuse.
> When control returns from the method call, the Java Virtual
Machine has made a best effort to reclaim space from all
discarded objects.
12
Introduction to
Gargbage Collection (GC)

Sang Shin
Technology Evangelist
Sun Microsystems, Inc.
www.javapassion.com

13

You might also like