Na realidade brinquei um pouco as especializações de java.lang.ref.Reference. Representam o modelo de referencia de objetos do Java e influenciando a execução do Garbage Collector (GC). São elas:
- WeakReference: um wrapper de uma referencia (qualquer objeto) "fraca", quando necessario o GC ira eliminar.
- SoftReference: outro wrapper, mas numa situação intermediaria nem tao fraca e nem tao forte. Na pratica tem uma durabilidade maior do que weak, mas qdo necessario - se necessário - o GC vai eliminar. Uma alternativa interessante para cache.
- PhantomReference: o wrapper mais "frágil", o objeto já recebeu sua doze letal sem chance de escapar da pena de morte. Não há recuperação, o método get sempre retorna null.
Além dessas 3, temos outras classes nessa API:
- ReferenceQueue: mantém as referencias elegíveis enfileiradas.
- WeakHashMap: Map composto pela chave WeakReference e valor a referencia, que sabe eliminar a chave
qdo o valor for coletada pelo GC. Em outras coleções o WeakReference (ou os outros) não são removidos, apenas a referencia encapsulada.
Acesse o javadoc e confira.
No comments:
Post a Comment