This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Can garbage collection ensure that a program will not run out of memory while running? I know there is no way to know when it will begin, but does it have a safegaurd that will cause it to execute at some random time before the program runs out of memory?
In fact, it is guaranteed that it will run immediately if a memory request is made and insufficient memory is present to fill the request. However, there is no guarantee that it will be able to successfully free any memory - if all the objects in memory still have references to them, you're basically screwed.