String interning (WAS: SAX2/Java: Towards a final form)

Clark C. Evans clark.evans at
Thu Jan 13 20:48:10 GMT 2000

On Thu, 13 Jan 2000, David Brownell wrote:
> > A java compiler could, for instance, take:
> > 
> >   lhs.equals(rhs)
> > 
> > and compile it as
> > 
> >   ( lhs == rhs | lhs.equals(rhs) )
> Any implementation of "equals" that doesn't
> first test for "==" has serious problems; and
> I include the String.equals implementations
> up to JDK 1.1.6 or so when I say that.
> Even so, method invocation is never free, and it's
> appropriate to ensure that it can be (sometimes)
> eliminated directly in the source code.

If I remember the rules, if the first member of
an alternation is true, then the second member
is not evaluated.  Thus, the above would not
incur a method invocation unless the strings
were not interned.

But, in general, I dig the point. 


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: or CD-ROM/ISBN 981-02-3594-1
Please note: New list subscriptions now closed in preparation for transfer to OASIS.

More information about the Xml-dev mailing list