Java: si-retour-si-retour si vs-retour-elseif-retour

Demandé à un question sans rapport où j'ai eu un code comme ceci:

public boolean equals(Object obj)
{
    if (this == obj)
        return true;

    if (obj == null)
        return false;

    if (getClass() != obj.getClass())
        return false;

    //Check property values
}

J'ai reçu un commentaire qui a affirmé que ce n'était pas la meilleure, et qu'à la place (si j'ai bien compris) doit faire ceci:

public boolean equals(Object obj)
{
    if (this == obj)
        return true;

    else if (obj == null)
        return false;

    else if (getClass() != obj.getClass())
        return false;

    //Check property values
}

En raison de la reprise des déclarations, je ne vois pas vraiment pourquoi l'un d'eux devrait être plus efficace ou plus rapide que les autres. Compte tenu d'un certain objet, les deux méthodes ont à faire un nombre égal de vérifications d'aussi loin que je peux voir. Et parce que le retour des déclarations, pas de code supplémentaire irait dans l'un d'eux.

Suis-je manqué quelque chose? Est-il quelque chose à cela? Y at-il des optimisations du compilateur ou de quelque chose qui se passe ou quoi que ce soit?

Je sais que c'est micro-optimisation, et je vais probablement rester avec le premier de toute façon, puisque je pense que c'est plus propre avec toutes les fi sur la même position. Mais je ne peux pas l'aider; je suis curieux!

  • Dites-moi le nom du mec qui a fait ce commentaire et je vais downvote lui 😉
  • Je vous conseille de ne pas se préoccuper de ces micro-niveau des optimisations. Vous pouvez toujours trouver les puristes qui divisent les cheveux. Ces optimations sont bien pris en compte par le compilateur et les chances sont le premier reçoit déjà réduit à la deuxième version (ou vice-versa, selon ce que votre compilateur est bonne).
  • Joshi - virtuelle (+1) au lieu d'élever votre main 🙂
  • Jigar post était tout à fait stupide. Je sais que nous sommes censés pour être poli et tout, mais c mon. Pas étonnant que la qualité du travail dans le logiciel est à la traîne. C'est de la merde les gens doivent apprendre dans leur première introduction cours de programmation. Pour ne pas savoir qu'une autre personne est simplement du sucre syntaxique pour un autre si (ce qui n'est qu'un autre saut/goto sous le capot), qui n'est pas acceptable de quelqu'un qui a passé son introduction programmation des cours. Il y a beaucoup de choses dans la programmation/CS qui sont très compliquées. Ce n'est pas l'un d'eux.
  • Ce que je pensais ceci Il était totalement en dehors de l'aspect, @Andreas_D @Swish Merci 🙂
  • Juste pour clearify, ce n'était pas de bash en aucune manière de vous! Était juste vraiment curieux 🙂
  • Tautologie la parole que deux fois la même chose en des termes différents, généralement considéré comme une faute de style

InformationsquelleAutor Svish | 2011-04-14