Qual é a diferença entre SoftReference e WeakReference em Java?
Olá, colegas! Sou um desenvolvedor Java iniciante e não consigo entender os tipos de referências em Java. Eu sei que existem Strong Reference (referência comum), além de SoftReference e WeakReference. Na prática, entendo que SoftReference é usado para cache e WeakReference para WeakHashMap ou para evitar vazamentos de memória, mas não está clara a fronteira entre eles.
Digamos que eu tenha este código:
```java
import java.lang.ref.SoftReference;
import java.lang.ref.WeakReference;
public class ReferenceTest {
public static void main(String[] args) {
Object strongObj = new Object();
SoftReference