[Debutant] Gc et Finalize
Hello world ! (c'est jamais facile le mercredi...)
Voila dans le cadre d'un exo de java, je dois supprimer un objet qui est dans une arraylist, et ensuite "passer" le garbage collector, or je sais très bien que celui-ci passe quand il veut...
Voici mon code pour l'override de Finalize();:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Override
public void finalize()
{
try {
super.finalize();
nbPersonnages--;
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} |
et celui du main pour effacer un objet de ma ArrayList:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| for(int i=0; i<player.size();i++)
{
if(player.get(i).getNickName().equals("Homer"))
{
player.remove(i);
System.out.println("Le joueur index "+ i +" du nom de: Homer a ete efface" +"\n"+ player);
System.gc();
};
}/*
Iterator<Player> iterator = player.iterator();
while ( iterator.hasNext() ) {
Object o = iterator.next();
Player p = (Player)o;
if(p.getNickName() == "Homer")
{
iterator.remove();
System.out.println("J'ai trouve Homer");
}
}*
System.gc();
System.out.println("nombre de joueurs: "+ Player.getNbJoueur());
System.out.println("liste ordonnée des employés:\n"+ Collections.sort(player));
/ |
Je dis bien que c'est dans le cadre de l'exercice que je dois passer le gc, car en soit... mais bon j'aimerais bien comprendre, en cherchant j'ai appris que le gabage collector, répertoriait les objet à partir du moment où il n'y avait plus aucune référence à ceux ci....
Donc si je supprime l'objet de la liste il n'existe plus aucune manière d'y accéder, si ?
Bonne journée :P