Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में रेफरेंस के प्रकार

परिचय

डेटा को गार्बेज कलेक्ट करने के तरीके के आधार पर चार अलग-अलग प्रकार के रेफरेंस होते हैं।

  • स्ट्रॉन्ग रेफरेंस
  • वीक रेफरेंस
  • सॉफ्ट रेफरेंस
  • फैंटम रेफरेंस

स्ट्रॉन्ग रेफरेंस

यह डिफ़ॉल्ट प्रकार का रेफरेंस ऑब्जेक्ट है। एक ऑब्जेक्ट जिसमें एक्टिव स्ट्रॉन्ग रेफरेंस होता है, उसे गार्बेज कलेक्ट नहीं किया जा सकता। यह केवल तभी संभव है जब स्ट्रॉन्गली रेफरेंस्ड वेरिएबल null की ओर इशारा करता है। आइए एक उदाहरण देखें -

उदाहरण

class Demo {
    // कुछ कार्यक्षमता
}
public class DemoExample{
    public static void main(String[] args){
        Demo myInst = new Demo();
        myInst = null;
    }
}

वीक रेफरेंस

वे डिफ़ॉल्ट क्लास के रेफरेंस ऑब्जेक्ट नहीं हैं, इसलिए उन्हें स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है। यह आमतौर पर WeakHashMap के साथ उपयोग किया जाता है, ताकि एंट्री ऑब्जेक्ट्स को संदर्भित किया जा सके। ऐसे वीक रेफरेंस को Java वर्चुअल मशीन द्वारा गार्बेज कलेक्शन के लिए चिह्नित किया जाता है। ऐसे रेफरेंस 'java.lang.ref.WeakReference' क्लास का उपयोग करके बनाए जाते हैं।

आइए एक उदाहरण देखें -

उदाहरण

import java.lang.ref.WeakReference;
class Demo{
    public void displayMsg(){
        System.out.println("नमस्ते");
    }
}
public class DemoSample{
    public static void main(String[] args){
        Demo inst = new Demo();
        inst.displayMsg();
        WeakReference myWeakRef = new WeakReference(inst);
        inst = null;
        inst = myWeakRef.get();
        inst.displayMsg();
    }
}

आउटपुट

नमस्ते
नमस्ते

Demo नाम की एक क्लास में 'displayMsg' नाम का एक फ़ंक्शन होता है। यह फ़ंक्शन एक प्रासंगिक संदेश प्रदर्शित करता है। 'DemoSample' नाम की एक अन्य क्लास में, मुख्य फ़ंक्शन परिभाषित किया गया है, और Demo क्लास का एक इंस्टेंस बनाया जाता है। इंस्टेंस पर 'displayMsg' फ़ंक्शन को कॉल किया जाता है। Demo क्लास के लिए एक वीक रेफरेंस बनाया जाता है, और Demo इंस्टेंस को null असाइन किया जाता है, और फ़ंक्शन को फिर से इस पर कॉल किया जाता है। प्रासंगिक आउटपुट कंसोल पर प्रदर्शित होता है।

  1. - Java में super कीवर्ड

    super वेरिएबल तत्काल पैरेंट क्लास इंस्टेंस को संदर्भित करता है।super वेरिएबल तत्काल पैरेंट क्लास मेथड को इनवोक कर सकता है।super() तत्काल पैरेंट क्लास कंस्ट्रक्टर के रूप में कार्य करता है और चाइल्ड क्लास कंस्ट्रक्टर में पहली लाइन होनी चाहिए।ओवरराइडन मेथड के सुपरक्लास संस्करण को इनवोक करते समय super क

  1. - Java में Aggregation

    Aggregation HAS-A संबंध को संदर्भित करता है। आइए पहले उदाहरण देखें −उदाहरणpublic class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; }यह दर्शाता है कि क्लास Van HAS-A Speed। Speed के लिए एक अलग क्लास होने से, हमें Van क्लास के अंदर स्पीड से संबंधित संपूर

  1. Java में इनहेरिटेंस के प्रकार Java में इनहेरिटेंस के प्रकार

    Java तीन प्रकार के इनहेरिटेंस का समर्थन करता है −सिंगल लेवल इनहेरिटेंस - एक क्लास एक सिंगल क्लास से प्रॉपर्टीज इनहेरिट करती है। उदाहरण के लिए, क्लास B क्लास A को इनहेरिट करती है।मल्टीलेवल इनहेरिटेंस - एक क्लास एक क्लास से प्रॉपर्टीज इनहेरिट करती है जिसने फिर से प्रॉपर्टीज इनहेरिट की हैंहायरार्किकल इ