JavaRush /Курсы /Java Collections /Задачи | 4 уровень | 4 лекция

Задачи | 4 уровень | 4 лекция

Java Collections
4 уровень , 4 лекция
Открыта

— Что, соскучился? Вот, держи:

8
Задача
Java Collections, 4 уровень, 4 лекция
Недоступна
Мягкие ссылки
Разберись в примере. Внутри метода main после создания объекта типа Monkey создай мягкую ссылку (SoftReference) на него.
Комментарии (77)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
{Java_Shark} Уровень 36
11 февраля 2025
++
5 апреля 2025
--
Denis Odesskiy Уровень 47
29 октября 2024
garbage collector в моей башке забыл удалить мягкие ссылки оставшиеся после решения задач по рекурсии и теперь у меня StackOverflow😱
safelogj Уровень 51
30 сентября 2024

void consumeHeap() {
        try {
          List<Solution> heap = new ArrayList<Solution>(100000);
           while (!isFinalized) {
              heap.add(new Solution());
              System.out.println(heap.size()); // замедли код, спаси Симку
                }
      } catch (OutOfMemoryError e) {
        System.out.println("An out-of-memory exception has occurred");
       }
 }
Shhopat Уровень 51
23 сентября 2024
i5 16gb 8sec
Fl1s Уровень 51
29 января 2024
MacBook Air M1: Bye-Bye, Simka! Finalized Done It took 5 s
Gans Electro Уровень 4
6 декабря 2023
Как я понимаю по хорошему должно вылезти OutOfMemoryError и мягкая ссылка должна быть убита прежде чем программа упадет. А если программа завершается без проблем то уничтожаются абсолютно все ссылки и наш эксперимент не такой чистый. Я менял List на Map и все сработало. Мартышка умирала первой
wokku Уровень 51
16 июля 2023
System.gc() является популярной командой, которую разработчики используют для предложения системе выполнить сборку мусора (garbage collection, GC) в Java Virtual Machine (JVM). Однако следует помнить, что сборка мусора в JVM не происходит немедленно, а запускается по решению самой JVM. Когда вызывается System.gc(), JVM делает предположение о том, что следует затратить ресурсы на освобождение памяти, занимаемой неиспользуемыми объектами. Тем не менее, это не гарантирует, что этот процесс будет выполнен до определенного времени, и даже не гарантирует, что он вообще будет выполнен. Также не гарантируется, что этот процесс определит изменения в достижимости определенного числа объектов или что какое-то определенное число объектов Reference будет очищено и поставлено в очередь. Таким образом, System.gc() предлагает, но не обязывает JVM выполнить сборку мусора. Это означает, что JVM может полностью игнорировать этот запрос, если считает, что сборка мусора в текущий момент не требуется. Важно помнить, что ручное управление сборкой мусора может привести к нежелательным побочным эффектам и снижению производительности, поэтому в большинстве случаев лучше доверить эту задачу JVM.
Sitnikov Konstantin Уровень 36
13 июля 2023
Что-то у меня никаких 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)
li.ch Уровень 41 Expert
28 апреля 2023
187 s Core i7, 16 Gb
Anonymous #3276583 Уровень 34
25 марта 2023
Output An out-of-memory exception has occurred Bye-Bye, Simka! Finalized Done It took 3 s