Вопрос

Есть ли путь в Java делать что-то незадолго до запуска памяти. Например, сохранение списка предыдущих государств документов (для отменить) и только удаление очень старого состояния, когда память собирается исчерпаться?

Это было полезно?

Решение

Например, сохранение списка предыдущих государств документов (для отменить) и только удаление очень старого состояния, когда память собирается исчерпаться?

Вы можете что-то сделать с SoftReference. Отказ Примечание также общая документация для java.lang.ref. упаковка. Если объекты доступны только через SoftReference, они будут собраны мусор до того, как возникает ошибка из памяти. Однако обратите внимание, что виртуальные машины не обязаны сохранять эти ссылки до такого события или вносить любые гарантии, на которые они могут быть очищены. Вы можете лучше всего сочетать с какой-то формой настойчивости.

Другие советы

Да, это, безусловно, возможно.

Я бы, вероятно, использовал список SoftreferenceS для ваших предыдущих государств документов. Это гарантированно утилизируются до того, как произошло из-за исключения из памяти.

В некотором периодическом интервале вы можете очистить нулевые ссылки из списка.

Я также рекомендовал сохранить нормальную ссылку на самое последнее состояние, чтобы вы всегда могли гарантировать хотя бы одну отменить :-)

Он будет зависеть от реализации JVM, но если вам повезет, JVM будет сохранять самые последние государства и утилизировать самые старые. Это не требуется строго в спецификации JVM, но является рекомендуемым поведением.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top