Я пытаюсь понять, при каких обстоятельствах я бы сделал Memory Leaks в своих программах, поэтому я начал читать об этом, начиная с This Wikipedia page, написанного на немецком языке.Утечка памяти в Java (Википедия)
Существует он пример написан на Java, в нижней части страницы:
private static List<Integer> nummern = new ArrayList<>();
public void erzeugeSpeicherleck() {
for (int i=1; i<10000; i++)
nummern.add(i);
}
// kein weiterer lesender Zugriff auf die List nummern (German)
// no further read access to list 'nummern' (English)
Я написал это в JavaScript, и все работало нормально.
var array = [];
for(var i=1; i<10000;i++){
array.push(i);
console.log(array);
}
Может кто-нибудь объяснить мне, почему этот кусок кода в Java производит Memory Leak?
Вы знаете разницу между JavaScript и Java, не так ли? Это принципиально разные языки, которые разделяют только часть названия. Кроме того, строка комментария переводится как «больше нет доступа для чтения к списку« nummern »» - по-прежнему можно получить доступ к списку :) – Thomas