String interning (WAS: SAX2/Java: Towards a final form)
Miles Sabin
msabin at cromwellmedia.co.uk
Fri Jan 14 15:55:31 GMT 2000
David Brownell wrote,
> Literals are already interned. It's in the language
> spec. Look at the javadoc for java.lang.String.intern ()
Good point ... and one which I'd <blush>unaccountably
overlooked</blush>.
I don't think this materially affects my argument tho',
because the only time where the performance difference
between,
foo == "literal"
and,
foo.equals("literal")
is going to be significant is where there are long chains
of comparisons, ie.,
if(foo == "elem1")
// do stuff for elem1
else if(foo == "elem2")
// do stuff for elem2
// ... repeat many times ...
else if (foo == "elemn")
// do stuff for elemn
where it'd be a far better idea (both from performance and
software design POVs) to do something like,
ElementHandler handler =
(ElementHandler)someTable.lookup(foo);
handler.doStuffForElement();
Cheers,
Miles
--
Miles Sabin Cromwell Media
Internet Systems Architect 5/6 Glenthorne Mews
+44 (0)20 8817 4030 London, W6 0LJ, England
msabin at cromwellmedia.com http://www.cromwellmedia.com/
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
mailing list