O coletor de lixo é garantido para ser executado antes de um erro de falta de memória?
Caso o heap esteja cheio, a JVM lança umOutOfMemoryError
. Mas é garantido que uma coleta de lixo (completa) sempre ocorre antes que uma exceção seja lançada?
Isso significaria que a memória está cheia apenas com objetos referenciados fortes (ou alcançáveis pelas Roots do GC) quando a exceção é lançada.
Edit: Suponha que o Sun JVM - HotSpot está em discussão.