I am not sure about jdk1.4, but in the older jdk's the "+" operator creates
a new String instance with the contents of a single concatenation.

Therefore, you are creating a large number of new String objects using the +
operator.

This may be optimized in the 1.4 jdk as indicated by the javadocs...

-Al Wick

> -----Original Message-----
> From: David Gallardo [mailto:[EMAIL PROTECTED]]
> Sent: Monday, January 20, 2003 9:08 PM
> To: JDJList
> Subject: [jdjlist] RE: Slow: string += string
>
>
> I'm looking at the 1.4.0 API spec for StringBuffer which gives the
> following example using three strings:
>
> "String buffers are used by the compiler to implement the binary string
> concatenation operator +. For example, the code:
>
>       x = "a" + 4 + "c"
>
>
> "is compiled to the equivalent of:
>
>       x = new StringBuffer().append("a").append(4).append("c")
>                             .toString()
>
>
> "which creates a new string buffer (initially empty), appends the string
> representation of each operand to the string buffer in turn, and then
> converts the contents of the string buffer to a string. Overall, this
> avoids creating many temporary strings."
>
> I haven't actually tested if this is true however, so I don't doubt you
> that actual compilers really don't do this.
>
> @D
>
>
> At 04:29 PM 1/20/2003 -0800, Greg Nudelman wrote:
> >[...]
> >Actually, if you read the StringBuffer API carefully, you'll
> note that the
> >compiler "has the option" to optimize String object
> >concatenation.  Actually, as the author of the original post (and my own
> >studies) indicated, what most compilers (most unfortunately) do is
> >concatenate only 2 strings at a time. Thus the overwhelming time/system
> >resources needed to append lots of String objects in a loop.
>
> [...]
>
>
> David Gallardo | Software consultant | Author
> Java, C/C++ software development | Database development |
> Internationalization
> Author of "Java Oracle Database Development"
>
>
> ____________________________________________________
> To change your JDJList options, please visit:
> http://www.sys-con.com/java/list.cfm
>
> Be respectful! Clean up your posts before replying
> ____________________________________________________
>


____________________________________________________
To change your JDJList options, please visit:
http://www.sys-con.com/java/list.cfm

Be respectful! Clean up your posts before replying
____________________________________________________

Reply via email to