Если вы хотите, чтобы временный объект использовался для статической инициализации, а затем утилизировался, вы можете использовать статический блок инициализатора, например,
class MyUtils {
static
{
MyObject myObject = new MyObject();
doStuff(myObject, params);
}
static boolean doStuff(MyObject myObject, Params... params) {
// do stuff with myObject and params...
}
}
, поскольку статический блок инициализатора является особым видом статического метода, myObject является локальной переменной и может быть подвергнут сборке мусора после завершения выполнения блока.