Duplicar posibles:
When should one use final?¿Es una buena práctica declarar variables "definitivas" siempre que sea posible?
tiendo a declarar todas las variables final
menos que sea necesario. Considero que es una buena práctica porque permite al compilador verificar que el identificador se usa como espero (por ejemplo, no está mutado). Por otro lado, complica el código, y tal vez este no es "el camino de Java".
Me pregunto si hay una mejor práctica generalmente aceptada con respecto al uso no requerido de las variables finales, y si hay otras compensaciones o aspectos de esta discusión que deben tenerse en cuenta.
La idea del código opcional que puede o no expresar la intención del desarrollador y que puede o no conducir a optimizaciones del compilador suena como algo sacado de un comic de XKCD. – jordanpg
Lo importante es tener mucho cuidado con lo que quieres decir con final. los objetos mutables finales aún se pueden modificar, lo que algunos novatos olvidan. Este es el gran problema que tengo con el final realmente, cada vez que estoy trabajando con un objeto mutable el * intento * de final se pone turbio, conozco el significado literal, pero la persona que usa el final realmente está bien conmigo modificando el contenido del objeto a pesar de que es final o no? – dsollen