मैं समझने के लिए एक नमूना डेमो प्रोग्राम बना रहा हूं कि मैं स्थिर चर के संदर्भ को कैसे रोक सकता हूं, कचरा कलेक्टर का उपयोग कर जावा में विधियों को कैसे रोक सकता हूं?क्या कचरा कलेक्टर जावा में स्थैतिक चर या विधियों पर काम करता है?
मैं कचरा कलेक्टर को रोकने के लिए कमजोर संदर्भ का उपयोग कर रहा हूं।
कक्षा 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<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
}
}
कचरा कलेक्टर वस्तुओं को इकट्ठा करता है, चर नहीं। एक चर एक कंटेनर है जिसमें/शामिल/संदर्भ है। और सबसे महत्वपूर्ण बात यह है कि ज्यादातर मामलों में आप कचरा संग्रह से गड़बड़ नहीं करना चाहते हैं। – ignis
बहुत अधिक सांख्यिकी। आप उन्हें क्यों मिला रहे हैं? –
नहीं, आपको अपने आप को बाद में साफ करना होगा – Nactus