String interning (WAS: SAX2/Java: Towards a final form)
Clark C. Evans
clark.evans at manhattanproject.com
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 ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ 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