In the example you give, it has no effect at all.
The variable is declared in the scope of the loop, at each iteration the variable will go out-of-scope which means the Employee object will already be eligible for garbage collection (if there's nothing else referencing the object). Setting a variable to null does not give the garbage collector a "sign" or do anything else to tip the garbage collector that the object is ready to be garbage collected (some people seem to think this).
Ofcourse, setting a variable to null can make an object eligible for garbage collection, if that variable was the only thing referring to the object. But
you should only do this when you understand what you're doing and why. I've seen people setting variables to null with a kind of superstitious belief that this somehow makes the program more memory-efficient; don't become one of those people...
Also, you should be aware that
variables are not objects, but only
references to objects. You don't "assign null to a complex type object"; you can set a variable to null, which means that it doesn't refer to any object anymore.