Normally you don't need to know, you just let the garbage collector do its work, and you can't really predict when exactly it happens. When the garbage collector runs exactly depends on the implementation details of the JVM. In the course of time there have been different garbage collector algorithms implemented in different versions of Sun's and Oracle's JVM, so the answer to your question is most likely different for different
Java versions.
You cannot schedule garbage collection and you normally should not be concerned with that. Calling System.gc() suggests to the JVM that it might be a good time to do garbage collection, but
you should be very careful with using that method. Only use it if you have some kind of proof that it will actually help. If you call it at the wrong time or too often, it might even hurt performance of your application.
Tuning garbage collection is an advanced subject. You can find some info on it here (for Oracle's HotSpot JVM version 6):
Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning