Bonjour à tous,

je ne connais pas encore très bien le fonctionnement de la JVM et je voulais savoir si, lorsqu'on a une collection avec des objets dedans (mettons un ArrayList), s'il valait mieux la vider avec la méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
monArrayList.removeAll(monArrayList);
Ou bien s'il valait mieux instancier un nouvel ArrayList et laisse faire le garbageCollector tout seul ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
monArrayList = new ArrayList();
De façon plus générale, vaut-il mieux vider le contenu d'un objet ou en instancier un nouveau et laisser le GarbageCollector faire ce qu'il a à faire ?


Enfin, dernière question bonus, concernant la boucle for() pour traiter des tableaux ou des collections, y a-t-il une différence de performance entre la syntaxe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
for(int i=0;i<tableau.length;i++)
   System.out.println(tab[i]);
et la syntaxe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
for(typeTableau temp : tableau)
   System.out.println(temp);

Merci à tous pour vos réponse.
PS: si vous avez de la doc sur ce genre de questions d'optimisation je suis preneur