There are four distinct forms of references in the JVM, and indeed many of these apply to other garbage collected languages.
- Strong references
- Soft references
- Weak references
- Phantom references
It's important to know the differences, what affect they have on the collector and when you should be using them.