The variable mc is local and therefore destroyed after the the method exits.
What they are saying is that, as you see in this case, when you return the value of mc, then a reference to the object is passed back to the caller of the method, so there is an additional reference to the object, and until you do something that removes all ways of accessing the object from a live
thread, the object won't be eligible for garbage collection.