Java · Avançado · Inglês · Técnico
weak reference
Referência que não impede o coletor de liberar o objeto. Se só existirem referências fracas a ele, o GC pode recolhê-lo e get() passa a devolver null.
Onde usar
Aparece em caches e mapas de listeners: WeakHashMap evita vazamento quando a chave deixa de ser usada.
Em código
var ref = new WeakReference<>(new byte[1024]);
System.gc();
// get() pode ser null depois do GC
byte[] dados = ref.get();
if (dados == null) {
System.out.println("coletado");
}Exemplos
Hold the listener through a weak reference to avoid a leak.
Segure o listener por uma referência fraca para evitar vazamento.
After a GC, the weak reference may return null.
Depois de um GC, a referência fraca pode devolver null.
Cuidado
Não use para cache de desempenho: o GC pode limpar a qualquer coleta; use um cache com política, como o Caffeine.
Sinônimos
referência fraca
Antônimos
referência forte