Sobes.tech
Senior

Bellek sızıntısı (Memory Leak) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Утечка памяти (Memory Leak) — ситуация, когда программа продолжает занимать память, которая больше не нужна и не используется, но не освобождается.

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

Пример утечки:

List<byte[]> cache = new ArrayList<>();

void addData() {
    byte[] data = new byte[1024 * 1024]; // 1MB
    cache.add(data); // объекты остаются в списке и не удаляются
}

Если метод addData вызывается много раз, память будет расти, так как объекты не удаляются.

Для предотвращения утечек важно:

  • Удалять ненужные ссылки
  • Использовать слабые ссылки (WeakReference) при необходимости
  • Следить за жизненным циклом объектов
  • Профилировать приложение на предмет использования памяти