Le premier code est mieux car elle restreint la portée de l' o
variable for
bloc. À partir d'un point de vue des performances, il pourrait ne pas avoir d'effets en Java, mais il pourrait avoir dans le bas niveau des compilateurs. Ils pourraient mettre la variable dans un registre si vous faites de la première.
En fait, certaines personnes pourraient penser que si le compilateur est muet, le deuxième extrait est de mieux en termes de performances. C'est ce que certains d'instructeur m'a dit au collège et j'ai ri à lui pour cette suggestion! Fondamentalement, les compilateurs d'allouer de la mémoire sur la pile pour les variables locales à une méthode juste une fois au début de la méthode (en ajustant le pointeur de pile) et le relâcher à la fin de la méthode (de nouveau en ajustant le pointeur de pile, en supposant que c'est pas du C++ ou il n'a pas de destructeurs d'être appelé). Donc tout basée sur la pile des variables locales à une méthode sont allouées à la fois, peu importe où elles sont déclarées et la quantité de mémoire dont ils ont besoin. En fait, si le compilateur est idiot, il n'y a pas de différence en termes de performances, mais si c'est assez intelligent, le premier code peut effectivement être mieux comme ça va aider le compilateur à comprendre la portée et la durée de vie de la variable! Par ailleurs, si elle est vraiment intelligente, il ne devrait absolument pas de différence dans les performances, il déduit la portée réelle.
Construction d'un objet à l'aide d' new
est totalement différent du déclarant simplement, naturellement.
Je pense que la lisibilité est plus important que la performance et à partir d'un point de vue de la lisibilité, le premier code est certainement mieux.