Здесь есть люди, которые предложат лучшие варианты, так что это всего лишь мои 0,02 $.То, что я делал некоторое время назад в каком-то приложении, - это SoftReference для объекта, и время от времени я проверял бы, является ли этот объект нулевым.SoftReferences собираются (обычно, но не гарантировано) GC непосредственно перед тем, как вы действительно приблизитесь к OutOfMemory, так что это как-то скажет вам, что вы действительно близки к неудаче.
Кроме того, в этом случае вам следуетглядя на опцию JVM:
-XX: SoftRefLRUPolicyMSPerMB = someValue
Где 'someValue' - это количество миллисекунд, на которое будет сохраняться мягкая ссылка для каждого свободного Мб памяти,По умолчанию значение равно 1 с / Мб, поэтому, если объект доступен только для мягкого доступа, он будет работать 1 с, если только 1 МБ свободного места в куче свободно
Возможно, это не лучший вариант, но может быть только подсказка?
Ура, Евгений.