Yes, makes sense to avoid the branching in that method. Thanks.
On Thu, Feb 28, 2013 at 10:23 AM, Remi Forax <fo...@univ-mlv.fr> wrote: > On 02/28/2013 09:07 AM, Volker Simonis wrote: > >> Probably because the API-Spec >> (http://docs.oracle.com/**javase/7/docs/api/java/lang/** >> StringBuilder.html#toString%**28%29<http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#toString%28%29> >> ) >> says "..A new String object is allocated and initialized to contain >> the character sequence currently represented by this object..". >> >> Regards, >> Volker >> > > Also, this kind of short circuit 'if' in a heavily used code like > StringBuilder.toString() can have bad interaction with the way the VM > optimize/deoptimize. See this thread for more information. > http://mail.openjdk.java.net/**pipermail/core-libs-dev/2012-** > May/010295.html<http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-May/010295.html> > > RĂ©mi > > > >> On Thu, Feb 28, 2013 at 8:47 AM, Jan Ohlsen <jan.t.ohl...@gmail.com> >> wrote: >> >>> System.out.println( new StringBuilder().toString() == "" ); >>> -> "false" >>> >>> >>> Any reason for not returning the "" instance? >>> >>> >>> public String toString() { >>> return new String(value, 0, count); >>> } >>> >>> --> >>> >>> public String toString() { >>> return (count > 0) ? new String(value, 0, count) : ""; >>> } >>> >>> ? >>> >> >