java - Why StringBuilder when there is String? -
i encountered stringbuilder
first time , surprised since java has powerful string
class allows appending.
why second string
class?
where can learn more stringbuilder
?
string
not allow appending. each method invoke on string
creates new object , returns it. because string
immutable - cannot change internal state.
on other hand stringbuilder
mutable. when call append(..)
alters internal char array, rather creating new string object.
thus more efficient have:
stringbuilder sb = new stringbuilder(); (int = 0; < 500; ++) { sb.append(i); }
rather str += i
, create 500 new string objects.
note in example use loop. helios notes in comments, compiler automatically translates expressions string d = + b + c
like
string d = new stringbuilder(a).append(b).append(c).tostring();
note there stringbuffer
in addition stringbuilder
. difference former has synchronized methods. if use local variable, use stringbuilder
. if happens it's possible accessed multiple threads, use stringbuffer
(that's rarer)
Comments
Post a Comment