Sobes.tech
Junior — Middle

Quando exatamente é que o recolhedor de lixo é executado para objetos referenciados através de Soft Reference?

sobes.tech IA

Resposta da IA

Os objetos referenciados através de SoftReference são recolhidos pelo coletor de lixo apenas quando há pouca memória disponível. Isso significa que esses objetos vivem mais do que objetos com referências fortes normais, mas podem ser removidos se a JVM estiver sob pressão de memória.

SoftReference é frequentemente usado para implementar cache: os objetos permanecem na memória enquanto houver recursos disponíveis e são removidos quando necessário liberar memória.

Assim, o coletor de lixo removerá um objeto referenciado por SoftReference quando:

  • Houver pouca memória livre.
  • A JVM decidir que precisa liberar memória para novos objetos.

Esse comportamento difere do WeakReference, onde um objeto pode ser coletado na próxima rodada de coleta de lixo se não houver referências fortes a ele.