>>>>> "Tania" == Tania Bento <[EMAIL PROTECTED]> writes:
Tania> I've written a quick benchmark that shows the difference
Tania> between using string concatenation, StringBuffer and
Tania> StringBuilder.
Note that "String +" is implemented by Java compilers by translating to
StringBuilder (1.5 compilers) or StringBuffer (all earlier compilers).
However, most compilers only do this within a single expression. So...
Tania> String actions = "";
Tania> if (!getActions().equals(""))
Tania> actions = ' ' + getActions() + ' ';
Tania> String string = '(' + getClass().getName() + ' '
Tania> + actions + getName() + ')';
Tania> return string;
... this code will most likely be turned into multiple 'new StringBuilder's,
and thus be slower than writing it out by hand.
If you rewrite it as a single expression you can look at the resulting
code and see that it is equivalent.
As a general rule I would say that code should be written for clarity
and not for micro-optimization. There are exceptions, of course,
e.g. cases where we know that a particular bit of code is
performance-critical. In these cases I would expect documentation of
the weirdness.
Tom