オブジェクトの生成方法として複数の方法を選択できる場合は、余計なオブジェクトが生成されない方法を選択すべきです。 そのためには、Java の言語特性を理解しておく必要があります。 例えば、下記の記述方法は、毎回オブジェクトが必ず生成されてしまうので適切とは言えません。
String s = new String("Hello"); // Not Good
Boolean b = new Boolean("true"); // Not Good
正しくは下記のように、文字列リテラルやファクトリメソッドを使って記述すべきです。
String s = "Hello"; // Good
Boolean b = Boolean.valueOf("true"); // Good
下記のような、生成に時間のかかるオブジェクトをキャッシュしておくのは、一般的によい習慣です。
ただし、単純なオブジェクトの生成・破棄に関しては、最新の Virtual Machine では十分に最適化されていることが多いため、オブジェクト・プールの仕組みを導入しても思ったほどの改善が見られないことがあります。 オブジェクト生成に関わるチューニングを行う場合は、実際のプロファイリング結果に基づいた検証を行うことが大切です。