Sobes.tech
Junior — Middle

Explique o que é uma referência fraca e em que casos ela é usada na programação.

sobes.tech IA

Resposta da IA

Uma referência fraca (weak reference) é uma referência a um objeto que não impede a sua recolha pelo coletor de lixo. Se apenas existirem referências fracas a um objeto, o coletor de lixo pode libertar a memória ocupada por esse objeto.

Usa-se em casos em que é necessário manter uma referência a um objeto, mas sem impedir a sua eliminação, por exemplo:

  • Cache de objetos para não os manter na memória mais tempo do que o necessário.
  • Referências a ouvintes ou manipuladores de eventos para evitar fugas de memória.

Em Java, as referências fracas são implementadas através da classe WeakReference do pacote java.lang.ref.

Exemplo:

WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
// Se já não houver referências fortes a MyObject, o objeto pode ser recolhido pelo coletor de lixo