0
Difference Between String & String Builder
3 Answers
+ 6
StringBuilder is much more dynamic
each time you append to a string builder using the append() method, you add the input to the EXISTING object
with a String object, you mostly use the += operator, which simply create NEW combined string in the memory, resulting in an obsolote reference which will be picked by the garbage collector (eventually)
so following few additiona to compare will look like this:
StringBuilder st = new StringBuilder();
st.append("This ");
st.append("is ");
st.append("my ");
st.append("string!");
String str = "";
str += "This ";
str += "is ";
str += "my ";
str += "string!";
in the memory the String would look like this
""
"This "
"This is "
"This is my "
"This is my string!"
whereas the StringBuilder will retain the same starting memory each append, adding only the address for the append operation.
this might not look like much, but do this for millions of strings over a short span of time and eventually your memory is slowly getting clogged.
+ 2
Well, the most important difference between String and StringBuffer/StringBuilder in java is that String object is immutable whereas StringBuffer/StringBuilderobjects are mutable. By immutable, we mean that the value stored in the String object cannot be changed. ... Next, you want to append âGuestâ to the same String.
+ 1
String
String is immutable, Immutable means if you create string object then you cannot modify it and It always create new object of string type in memory.
Example
string strMyValue = "Hello Visitor";
// create a new string instance instead of changing the old one
strMyValue += "How Are";
strMyValue += "You ??";
Stringbuilder
StringBuilder is mutable, means if create string builder object then you can perform any operation like insert, replace or append without creating new instance for every time.it will update string at one place in memory doesnt create new space in memory.
Example
StringBuilder sbMyValue = new StringBuilder("");
sbMyValue.Append("Hello Visitor");
sbMyValue.Append("How Are You ??");
string strMyValue = sbMyValue.ToString();