Junior — Middle
Как може да се предизвика грешка при недостиг на памет в Java приложение?
sobes.tech AI
Отговор от 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.