Если это поток объектов, то, насколько я знаю, они не попадают в пул констант String, если вы не вызовете intern (). Потребление памяти для интернированных строк происходит не из кучи, а из пространства памяти Perm Gen, поэтому, если вы интернируете много строк, приложение вылетит с OutOfMemory, даже если осталось много кучи.
Так что это не должно быть проблемой, если вы не интернируете все эти строки. Если это станет проблемой, у вас будет возможность иметь собственную реализацию Map для хранения этих строк, поэтому вы не используете внутренний механизм.
Я проверил реализацию метода intern (), и он является нативным, поэтому не представляется простым измерить потребление памяти или просмотреть содержимое пула.
Вы можете использовать этот флаг для увеличения PermSize, если вам не хватает памяти:
-XX:MaxPermSize=64m