?
Solved

How many objects are eligible for garbage collection?

Posted on 2011-03-11
3
Medium Priority
?
578 Views
Last Modified: 2012-05-11
I am studying for a Java Certification Exam. I approached this problem in a book written by "Sierra-Bates", where I need to solve multiple choice question. When the //do stuff is reached, how many objects are eligible for GC?

The code is given below, and I also use print statement inside the constructor to count the number of Objects created.

Obviously, to me it looks like 2 Objects are created, and 1 Object is eligible for Garbage Collection, since c1 (instance variable) is pointed to null.
However, the answer (given in the book) is 2 Objects are eligible for Garbage Collection. The explanation written is, "Only one CardBoard object (c1) is eligible, but it has an associated Short wrapper object that is also eligible"

My Question is, why the "Short story" variable is counted as an Object, and eligible for Garbage Collection?  


class CardBoard
{
	Short story = 200;
	CardBoard()
	{
		System.out.println("CardBoard Object: " + toString());
	}
			
	public static void main (String [] args)
	{
		CardBoard c1 = new CardBoard();
		CardBoard c2 = new CardBoard();
		c1 = null;
                //do stuff
	}
}

Open in new window


I would appreciate if you could explain the "explanation" given in the book :)
0
Comment
Question by:techbro
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 92

Accepted Solution

by:
objects earned 1000 total points
ID: 35114631
>       Short story = 200;

Because it is using the Short wrapper class (not a short primitive)
That line is the same as saying


      Short story = new Short(200);
0
 
LVL 2

Assisted Solution

by:preraksheth
preraksheth earned 1000 total points
ID: 35114685
short is a basic data type, while Short is a wrapper type.
Beginning Java 1.4, the basic data type to wrapper and vice versa is provided automatically (before that, it had to be done by hand) but it still creates an object for that.
0
 

Author Closing Comment

by:techbro
ID: 35114898
Thank you for your time!
0

Featured Post

Get real performance insights from real users

Key features:
- Total Pages Views and Load times
- Top Pages Viewed and Load Times
- Real Time Site Page Build Performance
- Users’ Browser and Platform Performance
- Geographic User Breakdown
- And more

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
In this post we will learn different types of Android Layout and some basics of an Android App.
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
Suggested Courses
Course of the Month12 days, 10 hours left to enroll

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question