Garbage Collection – OCPJP 6

3) Which of the following statements are true about the following program?

package gc;
import javax.swing.JButton;
public class Ques01 {
	public static void main(String[] args) {
		JButton button = new JButton(); // Line A
		StringBuilder sb1 = getSB();  // Line B
		getSB(); // Line C
		button = null; // Line D
	static StringBuilder getSB(){
		return new StringBuilder("");
  1. The button object ‘button’ will become a candidate for garbage collection as soon the execution of Line A ends since the object is not used elsewhere.
  2. The newly created StringBuilder object as a result of method call in Line C becomes eligible for garbage collection.
  3. Even though the object pointed by the reference ‘button’ is set to null in Line D, the garbage collector, it is unsure that the Garbage collection reclaims the memory used by ‘button’.

Get more questions on GarbageCollection


3) b and c.

The object ‘button’ wont be eligible for Garbage Collection unless it is explicitly set to null or the method returns.



About Krishna Srinivasan

He is Founder and Chief Editor of JavaBeat. He has more than 8+ years of experience on developing Web applications. He writes about Spring, DOJO, JSF, Hibernate and many other emerging technologies in this blog.