Java uses a comprehensive memory management system to improve security and portability across all types of platforms and architectures. Different types of memory management in a JVM are called garbage collectors and their settings and behaviors provide many ways to control how memory is allocated when data objects are created and freed when they are no longer in use. Issues arise when the heap grows and the application is paused to perform GC, leading to transaction delays and even session time-outs.
Almost all of the garbage collection modes in JVMs cause these delays. When a garbage collector is keeping pace with the application's memory throughput, there should be no reason to try and force GCs from outside using tools. Forcing extra GC cycles normally means the application is under stress and cannot keep up, or the GC mode is unsuited to the workload at hand.
For a deeper understanding of garbage collection modes and methodologies in Java, and how garbage control can be minimized or even eliminated, watch this comprehensive presentation about Java garbage collection from Azul's CTO Gil Tene.