import java.lang.ref.WeakReference;

public class PengamatRoot {
    static WeakReference<StringBuilder> pengamat;

    public static void main(String[] args) {
        buatData();
        System.gc();
        if (pengamat.get() == null) {
            System.out.println("setelah frame hilang + gc(): objek dipungut");
        } else {
            System.out.println("setelah frame hilang + gc(): objek masih ada");
        }
    }

    static void buatData() {
        StringBuilder lokal = new StringBuilder("data sementara");
        pengamat = new WeakReference<>(lokal);
        System.out.println("di dalam method : objek terlihat, isi = " + pengamat.get());
    }
}
