Est-il avantageux de rendre les méthodes privées définitives? Cela améliorerait-il les performances?
Je pense que "final privé" n'a pas beaucoup de sens, car une méthode privée ne peut pas être ignorée. La méthode devrait donc être efficace, comme lors de l'utilisation de final.
Et serait-il préférable de rendre une méthode d'assistance privée statique (lorsque cela est possible)?
Quel est le meilleur à utiliser?
private Result doSomething()
private final Result doSomething()
private static Result doSomething()
private static final Result doSomething()
L'ajout de final
aux méthodes n'améliore pas les performances avec Sun HotSpot. Là où final
pourrait être ajouté, HotSpot remarquera que la méthode n'est jamais remplacée et la traitera donc de la même manière.
En Java, les méthodes private
ne sont pas virtuelles. Vous ne pouvez pas les remplacer, même en utilisant des classes imbriquées où elles peuvent être accessibles aux sous-classes. Par exemple, les méthodes pour appeler des utilisateurs privés sont différentes de celles utilisées pour les non-utilisateurs privés. L'ajout de final
à des méthodes privées ne donne aucune chance.
Comme toujours, ce type de micro-optimisation ne vaut pas la peine d’y passer du temps.
private static Result doSomething()
, si cette méthode n’utilise aucune variable d’instance. Dans tous les cas, les rendre final n’a aucun sens puisque l’accesseur est privé.
Non, ce ne sera pas. les méthodes privées ne sont pas héritées. Donc, les rendre final est une question discutable. Notez également que vous ne devez pas rendre les méthodes définitives pour la performance. JVM est plus intelligent que cela. Ce type d'optimisation n'est pas très utile. Vous devriez rendre les choses finales, privées, privées, protégées, privées, etc. basées sur la sémantique et la conception.
Marquer une méthode privée en tant que finale ne change rien, mais cela peut dérouter les développeurs juniors qui regardent votre code. Rester simple.
Le développeur IBM travaille: Théorie et pratique de Java: est-ce votre réponse finale? article est un vieux mais bon à propos d'utiliser le mot clé final
en Java:
En rendant la méthode finale, nous ne pouvons pas remplacer la méthode. Puisque les méthodes privées ne sont pas accessibles en dehors de la classe. Il n’ya aucun sens de rendre la méthode finale et privée. Cela peut frapper la performance.