Это вопрос о сборке мусора в java: если кто-то выделяет большой блок памяти (используя новый int [BIG_NUMBER] или, тем не менее), есть ли какая-либо гарантия, что сборщик мусора будет собирать мусор до того, как возникнет ошибка OutOfMemoryError?Является ли это поведение сборщика мусора частью спецификации Java на данный момент?
Я узнал, что сборщик мусора сам может вызвать такое исключение в случае, если сбор мусора занимает слишком много времени, по крайней мере, в случаеВиртуальная машина Java Sun Hotspot
«Параллельный / параллельный сборщик сгенерирует ошибку OutOfMemoryError, если на сборку мусора затрачивается слишком много времени: если на сборку мусора затрачивается более 98% общего количества и меньше 2% кучи восстанавливается, OutOfMemoryError будет выдан.Эта функция предназначена для предотвращения запуска приложений в течение длительного периода времени при небольшом прогрессе или его отсутствии, поскольку куча слишком мала.При необходимости эту функцию можно отключить, добавив параметр -XX: -UseGCOverheadLimit в командную строку.»
но это может быть отключено, согласно цитате, путем добавления параметра в командную строку.