There is some depth to this topic, so a simple "yes" or "no" answer would be misleading.
If we are talking about running in a single JVM (client application), then explicitely setting the object references to null would indeed be clutter. However, there are two exceptions:
1. If your code actively manages memory (as opposed to relying on the GC), you must make sure that you unreference the allocated space. Otherwise, a memory leak would be introduced. This comes in play if you do something with the System.arraycopy() method, for example. For an excellent treatment of this issue, see
Effective Java.
2. Sometimes you may feel like writing expressive code, telling something to the fellow programmers. For example, by setting a reference to null in the middle of a long method, you are saying "I am
really done with this object". This would be rare, though.
Now, let's move to the distributed system where we have two or more JVMs running, one (or more) on the client side(s), and one on the server side.
The RMI spec tells us that unreferenced() is called on the exported server object when no client (in the client JVM) holds any reference to this object (see
Garbage Collection of Remote Objects for the precise specification). Note, however, that it's only one of the
two conditions that must be met before the server object can be GCed. The other condition is that no
server side object should hold any reference to the exported object in question. To make the object eligble for GC, you
must set all the server side references to it to null, unless they are already out of scope. This is probably what you are addressing in your question.
If you are experimenting with the DGC (Distributed Garbage Collector), you may want to set the sun.rmi.dgc.checkInterval and the java.rmi.dgc.leaseValue properties to some small values, so that the DGC kicks in faster and more frequently.
Finally, if your object is bound to the RMI registry, it's
always reachable and therefore can never be garbage collected (unless you unbind it from the naming space, of course).
[ June 13, 2005: Message edited by: John Smith ]