Sobes.tech
Back to questions
Junior — Middle
60

Каким образом можно спровоцировать ошибку нехватки памяти в Java-приложении?

Companies where asked
Ifellow

Answer from AI

sobes.tech AI

Ошибка нехватки памяти в Java-приложении (OutOfMemoryError) можно спровоцировать, например, создавая большое количество объектов без освобождения ссылок на них, что мешает сборщику мусора освободить память. Часто это происходит при бесконтрольном добавлении элементов в коллекции, например, в бесконечном цикле.

Пример:

import java.util.ArrayList;
import java.util.List;

public class MemoryLeakExample {
    public static void main(String[] args) {
        List<byte[]> list = new ArrayList<>();
        while (true) {
            // Создаем массивы по 1 МБ и добавляем в список
            list.add(new byte[1024 * 1024]);
        }
    }
}

В этом примере программа будет постоянно выделять память под новые массивы и хранить ссылки на них, что приведет к переполнению кучи и выбросу OutOfMemoryError.