You are concerned that your program may attempt to use more memory than is available. To avoid this situation you want to ensure that the Java Virtual Machine will run its garbage collection just before you start a complex routine. What can you do to be certain that garbage collection will run when you want . 1) You cannot be certain when garbage collection will run 2) Use the Runtime.gc() method to force garbage collection 3) Ensure that all the variables you require to be garbage collected are set to null 4) Use the System.gc() method to force garbage collection Which one is right? What are Runtime.gc() and System.gc() ? What different on used of them?
> 1) You cannot be certain when garbage collection will run > 2) Use the Runtime.gc() method to force garbage collection > 3) Ensure that all the variables you require to be garbage collected are set to null > 4) Use the System.gc() method to force garbage collection > Which one is right?
#1 is the correct answer.You cannot force garbage collection. You can do #3 and either #2 or #4, but it will not force gc.
> What are Runtime.gc() and System.gc() ? What different on used of them?
They are equivalent.
JavaBeginnersFaq "Yesterday is history, tomorrow is a mystery, and today is a gift; that's why they call it the present." Eleanor Roosevelt
There is no such thing as Runtime.gc() ! The correct invocation is Runtime.getRuntime().gc() ! It's a shame that even mock exam authors do not pay attention to those things !! I like being picky (sometimes it helps)
------------------ Valentin Crettaz Sun Certified Programmer for Java 2 Platform