Un membro statico puoi anche non inizializzarlo mai.
Certo, in quel caso vuol dire che non ti serve... ^^

La necessita' di inizializzare subito un membro final nasce dal fatto che, in caso contrario, il compilatore non potrebbe assicurarsi in alcun modo che quella variabile venga inizializzata una e una sola volta. Poi ti ritroveresti con un errore a tempo di esecuzione, che non e' una bella cosa...

Tieni presente che, siccome in Java gli oggetti sono puntatori, scrivere:

codice:
final StringBuffer s;
non sta ad indicare che il buffer s e' costante e non puoi piu' aggiungere altri caratteri.
Bensi', una volta istanziato un oggetto:

codice:
s = new StringBuffer();
s puntera' SEMPRE a quella particolare istanza.