Are these two declarations of String different ? I can't understand it! Could someone here help me?
This topic has been discussed before. You might want to try searching on word combos like 'new' and 'garbage'. You'll probably get a broader discussion that way. Here is just one of the many discussions: http://www.javaranch.com/ubb/Forum24/HTML/002268.html
Hope that helps,
Originally posted by Tony Sam:
[b]The String s = "hello"; s = null; is not garbage collected but String s = new String ("hello"); s = null; is garbage collected.
Are these two declarations of String different ? I can't understand it! Could someone here help me?[/B]
1)From the following code how many objects are eligible for garbage collection?
String string1 = "Test";
String string2 = "Today";
string1 = null;
string1 = string2;
i think it must be D), but the correct ans is A) , why??
I believe that is because in line 3, string1 is set to null, so the literal "Test" is not being used anymore and then eligible for garbage collection.
I still feel the answer is D)0
String literals are not G'ced
Correct me if i am wrong.
Why wouldn't they? Don't string literals reference an instance of the String class? If they're a reference, then why wouldn't they gc'd? I'd like to hear what other people have to say as well. I could be totally wrong?
I'm curious as this is a really good question.
References to String literal object are added to a pool that is not g.c.ed. Search th Ranch for examples.