String.substring() question

Boehm, Hans
Wed May 16 17:28:00 GMT 2001

> From: Tom Tromey [ ]
> Right now String.substring() always creates a reference to the old
> string's data.  I wonder if that is always what we want.  I think
> perhaps if the old String is very large and the new substring is very
> small, then we might consider making a copy.
That will have the added advantage that the collector won't have to ever
look at the new string.  That matters if it's very long-lived.  I have no
idea how often that happens in practice.

> Or maybe for very large
> Strings we could consider playing some game involving weak references?
I suspect that it's almost always cheaper to copy a short string then to
generate a weak reference.

> Or maybe this is a nonissue -- maybe people don't make huge Strings
> often enough for it to be worthwhile.
> I'm not aware of any data that would help us make these sorts of
> decisions.  Bummer.
Neither am I.


More information about the Java mailing list