Apexにおいて、final修飾子は変数の再代入を防ぐために使用されます。
つまり、一度設定した変数の値がプログラムにの実行中に変更できなくなります。
意図していない変更等を防ぐことができるので、安全性が向上します。
ちなみに、Apexではクラスやメソッドのオーバーライドや継承ができなくなっていますが、明示的に示すためにfinal修飾子をつけることはできます。
※オーバーライドや継承をするためにはvirtual修飾子をつける必要がある。
Apexでは修飾子関連で結構Java等と仕様が異なることがあるので、注意していきましょう。