あまり知られていないことのようなので書きますが,javaではenumが導入された5.0以降でシングルトンを実現する際の一番安全・簡単な方法はenumを使った実装です.

NullRunnable.INSTANCEとすれば単一インスタンスを取得できます.またクラスやインターフェイスも継承/実装できます.privateメソッドにアクセスできるリフレクションに対しても,この場合にはprivateコンストラクタさえないため,有効に働くところがさらなるメリットです.