Garbage collection is the automatic process of finding and freeing memory that a program no longer uses, so the memory can be reused.
Click to reveal answer
beginner
Why is garbage collection important?
It helps prevent memory leaks by cleaning up unused memory, which keeps programs running smoothly without running out of memory.
Click to reveal answer
intermediate
Name two common garbage collection techniques.
Two common techniques are reference counting and mark-and-sweep. Reference counting tracks how many references point to an object. Mark-and-sweep marks reachable objects and frees the rest.
Click to reveal answer
beginner
What is a memory leak?
A memory leak happens when a program keeps memory that it no longer needs, causing less memory to be available for other tasks.
Click to reveal answer
intermediate
How does mark-and-sweep garbage collection work?
It first marks all objects that can be reached from the program’s roots, then it sweeps through memory to free objects that are not marked.
Click to reveal answer
What does garbage collection do?
AAutomatically frees unused memory
BCompiles code faster
CIncreases program size
DDeletes program files
✗ Incorrect
Garbage collection automatically frees memory that is no longer used by the program.
Which technique tracks how many references point to an object?
AMark-and-sweep
BReference counting
CCompaction
DStack allocation
✗ Incorrect
Reference counting keeps track of how many references point to each object.
What problem does garbage collection help prevent?
ASyntax errors
BSlow internet
CMemory leaks
DFile corruption
✗ Incorrect
Garbage collection helps prevent memory leaks by freeing unused memory.
In mark-and-sweep, what happens to objects not marked?
AThey are kept in memory
BThey are renamed
CThey are copied
DThey are freed
✗ Incorrect
Objects not marked as reachable are freed to reclaim memory.
Which of these is NOT a garbage collection technique?
ALoop unrolling
BMark-and-sweep
CReference counting
DCompaction
✗ Incorrect
Loop unrolling is a code optimization technique, not a garbage collection method.
Explain in simple words what garbage collection is and why it matters.
Think about cleaning up your room so you have space to move.
You got /3 concepts.
Describe how the mark-and-sweep garbage collection method works step-by-step.
Imagine marking all your friends in a crowd, then removing everyone else.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of garbage collection in programming?
easy
A. To automatically free memory that is no longer used by the program
B. To speed up the execution of the program
C. To compile the program faster
D. To store data permanently on disk
Solution
Step 1: Understand what garbage collection does
Garbage collection automatically frees memory that the program no longer uses, preventing memory waste.
Step 2: Compare options with this purpose
Only To automatically free memory that is no longer used by the program describes this automatic freeing of unused memory, while others describe unrelated tasks.
Final Answer:
To automatically free memory that is no longer used by the program -> Option A
Thinking garbage collection speeds up program execution
Confusing garbage collection with compiling
Believing garbage collection stores data permanently
2. Which of the following is a correct statement about garbage collection syntax in most programming languages?
easy
A. You declare garbage collection using gc start; in code
B. You must manually call a function named garbageCollect() to free memory
C. Garbage collection runs automatically without explicit syntax
D. Garbage collection is triggered by writing freeMemory() in the program
Solution
Step 1: Recall how garbage collection works in modern languages
Most modern languages run garbage collection automatically without needing explicit calls or syntax.
Step 2: Evaluate each option
Options B, C, and D suggest manual calls or commands that are not standard syntax; only A correctly states automatic operation.
Final Answer:
Garbage collection runs automatically without explicit syntax -> Option C
Quick Check:
Garbage collection = automatic, no manual calls [OK]
Hint: Garbage collection usually needs no manual commands [OK]
Common Mistakes:
Assuming you must call garbage collection manually
Looking for special syntax to start garbage collection
Confusing garbage collection with memory free functions
3. Consider this pseudocode snippet:
var a = new Object()
var b = a
b = null
// Garbage collection runs here
Which object(s) will be collected by garbage collection?
medium
A. No objects will be collected because a still references the object
B. The object referenced by a and b
C. The object referenced by b only
D. Both a and b variables will be collected
Solution
Step 1: Analyze references to the object
Initially, both a and b point to the same object. After b = null, only a references it.
Step 2: Determine if object is unreachable
Since a still references the object, it is reachable and will not be collected.
Final Answer:
No objects will be collected because a still references the object -> Option A
Quick Check:
Object referenced = not collected [OK]
Hint: Object with any reference is not collected [OK]
Common Mistakes:
Thinking object is collected when one reference is null
Confusing variable collection with object collection
Assuming variables themselves are garbage collected
4. Identify the error in this pseudocode related to garbage collection:
var x = new Object()
var y = x
x = null
// Garbage collection runs here
print(y.property)
What problem might occur?
medium
A. Syntax error due to missing garbage collection call
B. Runtime error because y is null
C. Garbage collector frees object causing y.property to fail
D. No error; object is still referenced by y
Solution
Step 1: Check references after x = null
Even though x is null, y still references the object, so it remains reachable.
Step 2: Understand garbage collection behavior
Garbage collection only frees objects with no references. Since y references the object, it won't be freed, so y.property is safe.
Final Answer:
No error; object is still referenced by y -> Option D
Quick Check:
Object referenced = no error [OK]
Hint: Object referenced by any variable is safe from collection [OK]
Common Mistakes:
Assuming object is freed when one reference is null
Expecting syntax error for missing manual garbage call
Confusing variable null assignment with object deletion
5. In a program, you have a complex data structure where some objects reference each other in a cycle, but no external variables reference any of them. What will happen during garbage collection?
hard
A. Only some objects in the cycle will be collected, others remain
B. The cycle of objects will be collected because they are unreachable from outside
C. The cycle will never be collected because objects reference each other
D. Garbage collection will cause a runtime error due to the cycle
Solution
Step 1: Understand reachability in garbage collection
Garbage collection frees objects unreachable from any external references, even if they reference each other.
Step 2: Apply this to cyclic references
Since no external variables reference the cycle, the entire cycle is unreachable and will be collected.
Final Answer:
The cycle of objects will be collected because they are unreachable from outside -> Option B
Quick Check:
Unreachable cycles = collected [OK]
Hint: Unreachable cycles are collected despite internal references [OK]
Common Mistakes:
Believing cycles prevent garbage collection
Thinking only some objects in cycle are collected
Expecting runtime errors from cycles
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.