What I found interesting is how the periodic forced collections go completely against the advice of Sun which has always stated (with hotspot at least) that you should rarely, if ever, call System.gc()
It doesn’t seem like something you should be calling (except after initialisation steps etc. like you listed above) for the most part either. It may work… but I don’t have to like it 
Setting references to null explicitly makes sense, but is also a bit ugly… you don’t want null object handles hanging around in general. If it wasn’t a source formatting nightmare, I would try to do the same sort of thing by introducing new scopes for variables that you only need for a short while, eg:
void blah()
{
// do some clever stuff
{
Set stuff = new HashSet(); // need a set for something
// do more wonderfully clever things with stuff
}
// keep going, but 'stuff' is now out of scope
// so it can be collected AND I can't reference it.
}