• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Tim Cooke
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • paul wheaton
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Ron McLeod
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Tim Holloway
  • Carey Brown
  • salvin francis

String, StringBuffer and StringBuilder - Performance

 
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
All,

Can anyone please clarify the difference between String, StringBuffer and StringBuilder classes in terms of performance. Any significant compile time benefits if we use String objects instead of StringBuffer/StringBuilder objects?

Sorry if there is a post on the same topic before.

Many Thanks
Vijay
 
Marshal
Posts: 65467
249
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The three classes are as different as chalk and cheese.
Don't use StringBuffer; it has a significant performance overhead over StringBuilder and the synchronisation can be replaced by locking if required.

Lots more in the Java� Tutorials. If you want text, use String; it is immutable and thread-safe and doesn't require cloning or defensive copying, so you can use the same String object in different places.
If you need to change the contents of the text, use StringBuilder and get the contents out with its toString() method.
Beware: StringBuilder hasn't got an overridden equals() method, so if you want to see whether two StringBuilders have the same contents try

builder1.toString().equals(builder2.toString())
 
Campbell Ritchie
Marshal
Posts: 65467
249
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You can do some repeated concatenation of String like thisThen you can see how poor the performance is and how much faster it is with StringBuilder.
 
Ranch Hand
Posts: 664
Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Vijayanarayana Reddy Bhoomireddy wrote:All,

Can anyone please clarify the difference between String, StringBuffer and StringBuilder classes in terms of performance. Any significant compile time benefits if we use String objects instead of StringBuffer/StringBuilder objects?

Sorry if there is a post on the same topic before.

Many Thanks
Vijay



String is a class that allows the developer to build immutable String objects, whilst StringBuilder allows the developer to create strings from arrays of characters for example. This example illustrates a subtle security bad practice.



For further information this book helpful in explaining concepts, except for StringBuffer, which might have been excluded due to the performance overhead mentioned in this thread.
 
He loves you so much! And I'm baking the cake! I'm going to put this tiny ad in the cake:
Enterprise-grade Excel API for Java
https://products.aspose.com/cells/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!