J'essaie de comprendre différentes raisons pour la fuite de mémoire un des échantillons que j'ai vu où hashCode() a été implémenté et non égal à(). J'ai lu par celui-là que si l'un est dépassé, l'autre doit aussi être surmonté à cause de la violation du contrat.pourquoi n'implémente pas la méthode equals en Java provoque une fuite de mémoire
c'est l'exemple de code
import java.util.HashMap;
import java.util.Map;
public class MemoryLeak {
static class Key {
Integer id;
Key(Integer id) {
this.id = id;
}
@Override
public int hashCode() {
return id.hashCode();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Map m = new HashMap();
while (true)
for (int i = 0; i < 10000; i++)
if (!m.containsKey(i))
m.put(new Key(i), "Number:" + i);
}
}
Je sais que je ne l'ai pas mis en œuvre la méthode equals() sur le but. Mais je veux comprendre pourquoi la fuite de mémoire est créée ce qui se passe en interne.
grâce