Наверное, лучший ответ: ничего не делать.
Компилятор Java довольно умен. Он может сказать, что stuff
больше не нужен после createFileInput(stuff)
и переписывает код, чтобы убедиться, что он GCable. Вы можете установить его на нуль, если хотите быть на 100% уверенным, но компилятор, возможно, уже сделал это для вас. И установка его в нуль не гарантирует, что это будет GC'd.
Попробуйте сначала выполнить какое-то профилирование, и я думаю, вы обнаружите, что память уже освобождена. Наивный анализ вашего кода, чтобы найти места, где вы думаете, что есть проблемы с памятью, редко будет иметь хорошие результаты. Получить некоторые данные.
РЕДАКТИРОВАТЬ: обратите внимание, что компилятор может быть либо javac
, либо JIT-компилятором. Оба прекрасно осведомлены о подобных вещах и проводят всевозможные оптимизации, которые вы не могли бы себе представить. Итог: напишите чистый код, затем профилируйте его и оттуда оптимизируйте.
EDIT2: Для тех, кто интересуется уловками, которые JVM играет с памятью, я настоятельно рекомендую этот блог (который достаточно хорошо объясняет эту проблему): http://jeremymanson.blogspot.com/2010/02/garbage-collection-softreferences.html