• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Difference between '+' and concat() method in String

 
Vijaylaxmi Agarwal
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

Can anybody tell me what is the difference between '+' and concat() method in String.

Thanks in advance

Vijaylaxmi
 
arulk pillai
Author
Ranch Hand
Posts: 3387
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think there is no difference. I think both use a StringBuffer under the covers and do a toString() method at the end.
 
Rob Spoor
Sheriff
Pie
Posts: 20512
54
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Not quite. + does use a StringBuffer or StringBuilder, but concat() creates a new char[] with the contents of the current String and the String to append, and returns a new String based on that array:

I can actually see one more improvement on that which Sun have overlooked:


Now, if you concatenate only 2 strings the difference in performance will be minimal, but otherwise using + will result in fewer objects created, if there is a difference. However, its internal capacity can increase exponentially (it tries to use (value.length + 1) * 2 if the contents would not fit), so in the end it could be worse.

Still, using + is the usual way to go. Don't start using concat unless you find you really need to improve on performance.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic