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

जावा में संदर्भों के प्रकार

जिस तरह से डेटा कचरा एकत्र किया जाता है, उसके आधार पर चार अलग-अलग प्रकार के संदर्भ होते हैं।

  • मजबूत संदर्भ
  • कमजोर संदर्भ
  • सॉफ्ट संदर्भ
  • प्रेत संदर्भ

मजबूत संदर्भ

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

उदाहरण

class Demo {
   //Some functionality
}
public class Demo_example{
   public static void main(String[] args){
      Demo my_inst = new Demo();
      my_inst = null;
   }
}

कमजोर संदर्भ

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

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

उदाहरण

import java.lang.ref.WeakReference;
class Demo{
   public void display_msg(){
      System.out.println("Hello");
   }
}
public class Demo_sample{
   public static void main(String[] args){
      Demo inst = new Demo();
      inst.display_msg();
      WeakReference<Demo> my_weak_ref = new WeakReference<Demo>(inst);
      inst = null;
      inst = my_weak_ref.get();
      inst.display_msg();
}

आउटपुट

Hello
Hello

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


  1. जावा में सुपर कीवर्ड

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

  1. जावा में एकत्रीकरण

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

  1. जावा में विरासत के प्रकार

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