Deux avantages que je vois sont énumérés:
1 Marquer l'argument de la méthode comme final empêche la réaffectation de l'argument à l'intérieur de la méthode
De votre exemple
public String changeTimezone(final Timestamp stamp, final Timezone fTz,
final Timezone toTz){
// THIS WILL CAUSE COMPILATION ERROR as fTz is marked as final argument
fTz = Calendar.getInstance().getTimeZone();
return ..
}
Dans une méthode compliquée, marquer les arguments comme finaux aidera à interpréter accidentellement ces arguments en tant que méthodes, les variables locales et les réaffecter en tant que compilateur marquera ces cas comme indiqué dans l'exemple.
2 Passer l'argument à une classe interne anonyme
Comme un paramètre de méthode formel est une variable locale, vous pouvez y accéder à partir de classes anonymes internes uniquement si elles sont déclarées comme finales.