aspose file tools*
The moose likes Beginning Java and the fly likes Difference between '+' and concat() method in String Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Difference between Watch "Difference between New topic

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

Vijaylaxmi Agarwal

Joined: Sep 23, 2008
Posts: 3

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

Thanks in advance

arulk pillai
Ranch Hand

Joined: May 31, 2007
Posts: 3223
I think there is no difference. I think both use a StringBuffer under the covers and do a toString() method at the end.

Java Interview Questions and Answers Blog | profile | Java Interview Books
Rob Spoor

Joined: Oct 27, 2005
Posts: 19718

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.

How To Ask Questions How To Answer Questions
Consider Paul's rocket mass heater.
subject: Difference between '+' and concat() method in String