Almost always, garbage collection for JVMs involves figuring out ways to delay compaction. For some time this can be deployed on younger objects, given the fact that most objects have a relatively short time span, but the time will come that old dead objects will have to be reclaimed.
Garbage collection can be put on hold still some more by using the memory freed through the tracking of the removal of old objects. But at some point even this space will fragment and will need to be reclaimed. Therefore it seems one can conclude that garbage collection can be put on hold for a while, but not forever.
Consequently almost all GC strategies involve the stopping of application processing at some point in time to find out which objects are still being used. These objects can then be collected, with the heap being defragmented and compacted. The bigger the heap, the longer the pause times, leading to noticeable delays for users and poor application performance.
There is a way for garbage collection, tuning and monitoring to be entirely eliminated however - download this white paper to find out how.