Final, lorsqu'il est utilisé avec des variables en Java, remplace la constante en C ++. Ainsi, lorsque final et static est utilisé pour une variable, elle devient immuable. En même temps, les programmeurs C ++ migrés sont très heureux ;-)
Lorsqu'il est utilisé avec des variables de référence, il ne vous permet pas de re-référencer l'objet, bien que l'objet puisse être manipulé.
Lorsque final est utilisé avec une méthode, il ne permet pas à la méthode d'être écrasée par les sous-classes.
Une fois que l'utilisation est très claire, elle doit être utilisée avec soin. Cela dépend principalement de la conception car l'utilisation finale de la méthode n'aiderait pas le polymorphisme.
On ne devrait l'utiliser pour les variables que lorsque l'on est sacrément sûr que la valeur de la variable ne sera / ne devrait jamais être modifiée. Assurez-vous également que vous suivez la convention de codage encouragée par SUN.for par exemple: final int COLOR_RED = 1; (Majuscules séparés par un trait de soulignement)
Avec une variable de référence, utilisez-la uniquement lorsque nous avons besoin d'une référence immuable à un objet particulier.
Concernant la partie sur la lisibilité, assurez-vous que les commentaires jouent un rôle très important lors de l'utilisation du modificateur final.