String is an immutable object.
Then how can the following code be justified.
String s1 = ?ABC?;
String s1 = s1+?XYZ?;
s.o.p(s1);
The output is ABCXYZ, which is the value of s1 ?
Answers were Sorted based on User's Feedback
Answer / paras bist
above program is incorrect ,it will give compile time error
as "Duplicate Variable s1".
it should b
String s1 = "ABC";
String s = s1+"XYZ";
which is valid in string ,as we are creating new String
object
| Is This Answer Correct ? | 14 Yes | 2 No |
Answer / k.shiva
here we define s1="ABC".That means one new string is
created.And this string value is stored in heap its
refrence variable is s1.when we say s1+"XYZ".Then string s1
i.e ABC and XYZ are concadinated by using concadination
operater.It forms a new string i.e "ABCXYZ" in heap.But
again we assign this value to the refrence variable
s1.Then "ABCXYZ" value is assign to s1 and the string "ABC"
which is garbage collected.
| Is This Answer Correct ? | 12 Yes | 4 No |
Answer / amr
actually its a compiler error , variable already defined ..
but i'll answer the other part ,
String is immutable but does it make sense to write
String S1= abc;
S1=s1+"def";
YEAH its immutable and what happens behind the scene :
a new temporary String is created and using StringBuffer
which mutable class then appending then returning the
temporary string , thats the meaning of String is immutable
but StringBuffer is mutable , so if u r gonna use intensive
String manipulation u better go for StringBuffer because
String concatenation will result in more lines of code in
the byte code file generated when we compile .
this is a very frequent interview question .
| Is This Answer Correct ? | 4 Yes | 0 No |
Answer / vishal
in the later case a different overloaded contructor is
invoked while in the prior case a different.As in the later
case a different constructor initializes the string s1 with
different values hence the result
| Is This Answer Correct ? | 4 Yes | 2 No |
which swing component is similar to rich text box in .net/vb
What is the difference between Object and Instance?
What is the inheritance?
What is a vararg?
What is dynamic binding?
Can a final variable be manipulated in java?
What is difference between public static and void?
What is nested interface?
Which access specifier can be used with class ?
When will we use class loader?
What is skeleton and stub?
What are advantages and disadvantages of OOPs?