Tôi đang tạo một chương trình demo mẫu để làm cho tôi hiểu rằng làm cách nào tôi có thể phân bổ tham chiếu biến tĩnh, phương thức trong java bằng cách sử dụng bộ thu gom rác?Bộ thu gom rác có hoạt động trên các biến tĩnh hoặc các phương thức trong java không?
Tôi đang sử dụng Tham chiếu yếu để không ngăn chặn bộ thu gom rác.
Lớp 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;
}
}
Lớp 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<Sample> wr = new WeakReference<Sample>(obj1);
System.out.println(wr.get()); //[email protected]
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
}
}
Bộ thu gom rác thu thập các đối tượng chứ không phải các biến. Biến là một vùng chứa chứa/chứa/tham chiếu. Và quan trọng nhất, trong hầu hết các trường hợp, bạn không muốn gây rối với bộ sưu tập rác. – ignis
Quá nhiều số liệu thống kê. Tại sao bạn trộn chúng? –
Không, bạn sẽ phải dọn dẹp sau bản thân – Nactus