Да.Утечка памяти - это неиспользуемая память, которая не высвобождается приложением в диспетчер памяти.
Я много раз видел код Java, который сохраняет элементы в структуре данных, но элементы никогда не удаляются оттуда, заполняя память доOutOfMemoryError:
void f() {
List<Integer> w = new ArrayList<Integer>();
while (true) {
w.add(new Integer(42));
}
}
Хотя этот пример слишком очевиден, ошибки памяти Java, как правило, менее заметны.Например, использование Dependency Injection для сохранения огромного объекта в компоненте с SESSION
scope без его освобождения, когда объект больше не используется.
На 64-битной виртуальной машине это имеет тенденцию кухудшается, так как пространство подкачки начинает заполняться, пока система не сканирует слишком много операций ввода-вывода.