¿Cuál es la diferencia entre SoftReference y WeakReference en Java?
¡Hola, colegas! Soy un desarrollador Java principiante y no puedo entender los tipos de referencias en Java. Sé que hay Strong Reference (referencia normal), así como SoftReference y WeakReference. En la práctica, entiendo que SoftReference se usa para caching, y WeakReference para WeakHashMap o para prevenir memory leaks, pero no me queda clara la frontera entre ellos.
Supongamos que tengo 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