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