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

David Brownell david-b at
Thu Jan 13 17:39:30 GMT 2000

Miles Sabin wrote:
> David Brownell wrote,
> > So Miles, if you prefer the occasional synchronization issue
> > to the routine method invocation overhead, use a parser that
> > obliges you.  (Yes, I'm assuming SAX2 doesn't mandate any
> > interning, just exposes whether or not it's done.)
> Well, if your assumption is correct, then fine. But I rather
> got the impression that some people wanted SAX2 to make
> guarantees about Strings being returned java-interned.

Some People want all sorts of bizarre things.
In fact, I don't trust Some People at all ... ;-)

Sanity must at some point reign; demanding that all
SAX parsers do something that's not essential (only
very desirable in some common cases) would be unwise.

> > Though I daresay you'll find that the synchronization isn't
> > usually measurable, while your evidently preferred
> > alternative (lots of String.equals calls) will consistently
> > show up as a performance problem.  At least that's been the
> > case when I've made such measurements.
> Except that String.intern() isn't the _only_ way of making
> foo.equals(bar) iff foo == bar (in particular contexts, as
> opposed to across the whole JVM).

It's the only way to ensure it's so if foo is a string literal,
as is rather common usage.

- Dave

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