Работает ли сборщик мусора над статическими переменными или методами в Java?

Я создаю демонстрационную демонстрационную программу для того, чтобы я понял, как я могу освободить ссылку на статические переменные, методы в Java, используя сборщик мусора?

Я использую Weak Reference, чтобы не мешать сборщику мусора.

Учебный классSample

public class Sample {

    private static String userName;
    private static String password;
    static {
        userName = "GAURAV";
        password = "password";
    }
    public static String getUserName(){
        return userName;
    }
    public static String getPassword(){
        return password;
    }
}

Учебный классUser

import java.lang.ref.WeakReference;

public class User {

    public static void main(String[] args) {
        /**
         * Created one object of Sample class
         */
        Sample obj1 = new Sample();
        /**
         * I can also access the value of userName through it's class name 
         */
        System.out.println(obj1.getUserName()); //GAURAV
        WeakReference wr = new WeakReference(obj1);
        System.out.println(wr.get());  //com.test.ws.Sample@f62373
        obj1 = null;
        System.gc();
        System.out.println(wr.get()); // null
        /**
         * I have deallocate the Sample object . No more object referencing the Sample oblect class but I am getting the value of static variable. 
         */
        System.out.println(Sample.getUserName()); // GAURAV
    }

}

Ответы на вопрос(4)

Ваш ответ на вопрос