String interning
David Megginson
david at megginson.com
Fri Jan 14 20:35:59 GMT 2000
David Brownell writes:
> If the concern is only memory efficiency, then I tend to agree
> that there may well be more important things to worry about.
> But maybe not; so the filter can benefit from knowing if the
> data it gets is already interned.
That's just the question. I think it's too much hassle for people to
have to do
boolean namesAreInterned =
xmlReader.getFeature("http://xml.org/sax/features/interned-names");
and then
if (name == "foo" || (!namesAreInterned || name.equals("foo"))) {
do something
}
every time they want to compare names, and I very much doubt that
people will be happy with
private final static String FOO = mySAXInternTable.intern("foo");
and then
if (name == FOO) {
do something
}
One of the basic design goals of SAX 1.0 was to keep the interface
simple, under the assumption that many (most?) of the users will not
be XML or Java gurus, or even well-experienced programmers in
general.
Keeping this goal in mind, then, there are only two reasonable
choices:
1. Declare that SAX2 names must always be interned as with
java.lang.String.intern.
2. Declare that SAX2 names need not be interned as with
java.lang.String.intern.
Them's the choices.
All the best,
David
--
David Megginson david at megginson.com
http://www.megginson.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