Как поясняют комментарии выше, это не похоже на утечку памяти.
В Java-приложении JVM будет создавать объекты и использовать память. Со временем некоторые из объектов выйдут из области видимости (получат право на сборку мусора), но до следующего сбора они все равно будут находиться в куче, «используя память». Это не проблема, это то, как работает Java. Когда JVM решает, что ей нужно освободить память, она запускает коллекцию, и используемая память должна быть отброшена.
Должны ли вы заботиться о том, что вы видите? Я могу придумать две причины, по которым ты должен, и одну, почему не стоит. Если ваши сборщики мусора освобождают достаточно памяти для продолжения работы приложения, сборки не влияют на производительность и вы заняты другими делами, то я не вижу причин, по которым вам следует позаботиться.
Если, однако, вас беспокоит, что вы не понимаете, как приложение работает в деталях, или у вас есть причина, по которой возникает проблема с «большим объемом памяти» (вы захотите запустить приложение с еще большим количеством данных в будущем, или вы захотите запустить его с меньшим количеством назначенной кучи в будущем), тогда вы, возможно, захотите исследовать.
Если память используется, когда приложение ничего не делает, я бы остановился на этом. Что он на самом деле делает, когда он ничего не делает? Могу поспорить, что он делает «что-то»