Nel caso di inizializzazione lazy, c'è una soluzione interessante che evita l'uso di synchronized mantenendo però la thread-safety sfruttando una nested class.
Le operazioni che devo fare sono molto veloci quindi sincronizzando il metodo perderei poco tempo, cmq come si attua questa soluzione che mi dici ?

EDIT:
dimenicavo di chiedere una cosa. Siccome i metodi che ho restituiscono un valore, come devo utilizzarli?

String valore = MioTon.getInstance().mioMetodo();

Cosi' chiaramente il compilatore mi da un warning dicendomi che il metodo mioMetodo() deve essere acceduto staticamente, quindi potrei fare:

MioTon ton = MioTon.getInstance();
String valore = MioTon.mioMetodo();

prima creo l'istanza e dopo accedo al metodo? Quale delle due strade? :-)