Ephemerons
mail.openjdk.java.net
mail.openjdk.java.net
Is it normal for a language to have that many types of weak references ??
My understanding of SoftReferences is that they sound like they're going to be useful in implementing caches, but then cacheing is hard, and generic solutions like a SoftHashMap end up being toys. While they're are probably cases where SoftReferences are useful, they're not common, hence they're not elsewhere.
Phantom references are partly due to problems with the way finalize is implemented in Java, and partly due to difficulties writing low level code in a higher level language, hence they're slightly Java specific anyway.
[1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
https://community.oracle.com/blogs/enicholas/2006/05/04/unde...
Final reference is a wart that probably wouldn't be there if the language were designed today. But again, being source and binary compatible with code from 1995 is one of Java's greatest strengths.