Win a copy of Learn Spring Security (video course) this week in the Spring forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

StringBuffer problem

 
rimzim sinha
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
question from http://www.geocities.com/sunjava_scjp/Mock2.html

Why is the output "String Buffer added" when String Buffer is assigned "Hai"
in the last line?

Pls explain
[ November 08, 2004: Message edited by: Barry Gaunt ]
 
Olivier Lambert
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,

When you enter in the method "method", there is only 1 object in memory (the one with the value "StringBuffer") but 2 references to this object (sb in the main andthe local variable sb in the method parameter).

Ref sb (from main method) ---> "StringBuffer"
Ref sb (from method method) ---> the same object

So when you call sb.append(...) in the method "method", it's the original object that is modified =>StringBufferAppend. At this time we have in memory:

Ref sb (from main method) ---> "StringBufferAppend"
Ref sb (from method method) ---> the same object

Then when you create a new object and assign it to sb, it is the local reference that is modified, not the reference from the variable of the main method. The result in memory is:

Ref sb (from main method) ---> "StringBufferAppend"
Ref sb (from method method) ---> "Hai"

So when you leave the method "method", the variable sb reference already the same object, that has been modified.

Hope it can help.
 
rimzim sinha
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for clearing my concepts!
 
Krishna Srinivasan
Ranch Hand
Posts: 1862
Firefox Browser Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you for your explanation Olivier Lambert.
 
Hai Le
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
very nice explaination...!!
thanx bro
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic