Обнулить любую ссылку на объект, как только объект больше не нужен? Как только объект больше не имеет ссылки на него, сборщик мусора может его забрать, но я предполагаю, что вы уже знали это. GC может также работать с графами объектов без ссылок (если A имеет единственную ссылку на B и больше нет ссылок на A, тогда A и B могут быть собраны).
Вызывать System.gc () практически бессмысленно, поскольку если JVM требуется больше памяти, она будет делать это самостоятельно, а затем использовать освобожденную память. Если он не может освободить больше памяти, вы сталкиваетесь с OOME.
Теперь размер кучи по умолчанию не так велик, и поэтому часто вполне приемлемо требовать большего размера кучи.
Создание объектов в циклах - это не совсем плохая схема, и во многих случаях она весьма актуальна. Следует избегать повторного создания одного и того же объекта в цикле. Как правило, в циклах следует избегать конкатенации строк и заменять их на StringBuilder, созданный вне цикла, поскольку он намного менее эффективен с точки зрения производительности, но не с точки зрения памяти.
Не уверен, что я действительно отвечу на ваш вопрос.