Утечка памяти в более широком смысле - это любая ситуация, когда вы продолжаете удерживать выделенную память, которую вам больше не нужны, и больше не собираетесь использовать.
Рассмотрим следующий [правда] искусственный пример:
public class LeakingClass {
private static final List<String> LEAK = new ArrayList<>();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("What is your name? ");
while (in.hasNext()) {
name = in.next();
System.out.println("Hi " + name);
LEAK.add(name);
System.out.println("What is your name? ");
}
}
}
LEAK
список растет в каждой итерации, и нет никакого способа, чтобы освободить его, но он никогда не используется. Это утечка.
Зачем нужен ввод пользователя? a 'LEAK.add (" str ");' inside 'while (true)' будет достаточно –
@sharonbn. Этот пример просто казался несколько приятным, но, в конечном счете, в этом нет ничего особенного, и в нем могут быть разные примеры. – Mureinik
true, true ..... –