Rendre les méthodes privées finales?

Est-il avantageux de rendre les méthodes privées finales? Cela améliorerait-il les performances?

Je pense que “private final” n’a pas beaucoup de sens, car une méthode privée ne peut pas être remplacée. La recherche de méthode devrait donc être efficace comme lors de l’utilisation de final.

Et serait-il préférable de rendre statique une méthode d’assistance privée (si possible)?

Quel est le meilleur usage?

private Result doSomething() private final Result doSomething() private static Result doSomething() private static final Result doSomething() 

L’ajout de méthodes final n’améliore pas les performances avec Sun HotSpot. Où final pourrait être ajouté, HotSpot remarquera que la méthode n’est jamais remplacée et donc le traiter de la même manière.

En Java, private méthodes private ne sont pas virtuelles. Vous ne pouvez pas les remplacer, même en utilisant des classes nestedes où elles peuvent être accessibles aux sous-classes. Par exemple, les méthodes utilisées pour appeler des soldats sont différentes de celles utilisées pour les non-membres. Ajouter des méthodes final à des méthodes privées ne fait aucune différence.

Comme toujours, ces micro-optimisations ne valent pas la peine de passer du temps.

private static Result doSomething() , si cette méthode n’utilise aucune variable d’instance. Dans tous les cas, les rendre définitifs n’a aucun sens puisque l’accesseur est privé.

Non, ça ne va pas. les méthodes privées ne sont pas héritées. Donc, les rendre définitifs est un point discutable. Notez également que vous ne devez pas rendre les méthodes finales pour la performance. JVM est plus intelligent que ça. Ce type d’optimisation n’est pas très utile. Vous devez 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 comme finale ne change rien, mais cela peut induire en erreur les développeurs débutants qui examinent votre code. Rester simple.

Le développeur IBM fonctionne: théorie et pratique Java: est-ce votre réponse finale? article est un vieux mais bon à propos de l’utilisation du 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’y a pas de raison de rendre la méthode finale et privée. Il peut bash la performance.