Given an hypothetical utility class that is used only in program setup:
class MyUtils {
private static MyObject myObject = new MyObject();
/*package*/s
Static variables are referenced by Class objects which are referenced by ClassLoaders -so unless either the ClassLoader drops the Class somehow (if that's even possible) or the ClassLoader itself becomes eligible for collection (more likely - think of unloading webapps) the static variables (or rather, the objects they reference) won't be collected.