Как я понимаю по хорошему должно вылезти OutOfMemoryError и мягкая ссылка должна быть убита прежде чем программа упадет. А если программа завершается без проблем то уничтожаются абсолютно все ссылки и наш эксперимент не такой чистый. Я менял List на Map и все сработало. Мартышка умирала первой
System.gc() является популярной командой, которую разработчики используют для предложения системе выполнить сборку мусора (garbage collection, GC) в Java Virtual Machine (JVM). Однако следует помнить, что сборка мусора в JVM не происходит немедленно, а запускается по решению самой JVM.
Когда вызывается System.gc(), JVM делает предположение о том, что следует затратить ресурсы на освобождение памяти, занимаемой неиспользуемыми объектами. Тем не менее, это не гарантирует, что этот процесс будет выполнен до определенного времени, и даже не гарантирует, что он вообще будет выполнен.
Также не гарантируется, что этот процесс определит изменения в достижимости определенного числа объектов или что какое-то определенное число объектов Reference будет очищено и поставлено в очередь.
Таким образом, System.gc() предлагает, но не обязывает JVM выполнить сборку мусора. Это означает, что JVM может полностью игнорировать этот запрос, если считает, что сборка мусора в текущий момент не требуется.
Важно помнить, что ручное управление сборкой мусора может привести к нежелательным побочным эффектам и снижению производительности, поэтому в большинстве случаев лучше доверить эту задачу JVM.
Что-то у меня никаких Finalized
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 427819008 bytes for G1 virtual space
# An error report file with more information is saved as:
# D:\My Documents\JavaRushProjects\JavaRushTasks\hs_err_pid40164.log
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x000000076d400000, 427819008, 0) failed; error='���� �������� ������� ��� ��� ���������� ��������' (DOS error/errno=1455)
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ