Garbage Collection In Java In Hindi|Garbage Collection kya hai ?|Garbage Collection क्या है ?|

हेलो दोस्तों आज के इस ब्लॉग पोस्ट(Garbage Collection In Java In Hindi) में मै आपको garbage collection के बारे में बताने वाला हूँ | garbage का हिंदी में मतलब होता है कचरा, पर ये कचरा वो नहीं है जो हमारे घरों में सफाई के बाद निकलता है! बल्कि यह कचरा एक तरह का digital कचरा होता है जो की programming के दौरान या प्रोग्राम के एक्सेक्यूटे होने के बाद memory में रह जाता है |

जब सिस्टम में किसी node अथवा memory के लिए रिक्वेस्ट आती है और सिस्टम में कोई भी मेमोरी या नोड available नहीं होता है तब garbage collector सिस्टम में से ऐसे फ्री नोड्स या मेमोरी को जिन्हे अब कोई एक्सटर्नल पॉइंटर एक्सेस नहीं कर रहा है उन्हें कलेक्ट करके अपने पूल में डाल लेता है और फिर यह सारी मेमोरी फिर से use होने के लिए फ्री हो जाती है |Garbage Collection In Java In Hindi|

वैसे अगर देखा जाये तो garbage collection के दो फेज होते है | एक तो making का और दूसरा फेज होता है collection का फेज|Garbage Collection In Java In Hindi|

making के फेज में ऐसे सारे nodes को point out किया जाता है जो की external pointer के द्वारा एक्सेस किया जा रहे है या फिर वो अभी use में है और कुछ प्रोसेस उन्हें use कर रही है या फिर वो अभी queue में है |

और दूसरे phase में ऐसे nodes को कलेक्ट किया जाता है जो की अभी memory में फ्री है और उन्हें कोई भी use नहीं कर रहा है |

अगर ये सारे nodes एक ही ब्लॉक साइज के होते है तब हमें हर ब्लॉक को examine करना पड़ता है की यह marked हुआ है या नहीं |

और जब मेमोरी ब्लॉक variable साइज के होते है तब हम यहाँ पर सेकंड फेज में मेमोरी compaction करके सभी फ्री मेमोरी और unused memory को एक contiguous place पर ला कर रखते है जिससे कि उसे use में लाया जा सके|

Quick Q&A: Garbage Collection In Java In Hindi

java के अंदर Garbage collection क्या होता है और यह कैसे काम करता है |

Garbage collection के अंतर्गत heap एरिया में ऑब्जेक्ट्स के लिए मेमोरी एलोकेशन किया जाता है और यह तब तक रहता है जब तक कोई ऑब्जेक्ट referenced होता है मतलब कि object किसी न किसी को पॉइंट कर रहा होता है | और जैसे ही किसी object का referenced खत्म होता है अथवा वह किसी भी एप्लीकेशन या प्रोग्राम कोड द्वारा use नहीं किया जाता है तब ऐसी स्थिति में Garbage collector उस ऑब्जेक्ट की मेमोरी को फ्री करके उसे वापिस मेमोरी पूल में वापिस ले लेता है | और अब इस मेमोरी का उपयोग कोई और object द्वारा किया जा सकता है |

java Garbage akhir में क्या है अथवा इसकी वैल्यू क्या है?

java Garbage दरअसल वह है जहा पर सभी objects (Instance of class) store होते है | unused ऑब्जेक्ट को heap मेमोरी से हटाना ही Garbage collection की प्रोसेस है | और java में यह मेमोरी मैनेजमेंट का पार्ट है | Garbage collection की यह प्रोसेस C /C ++ में automatic नहीं है बल्कि जावा के अंदर Garbage collection की process automatic है |

Garbage collection का उपयोग कैसे किया जाता है ?

Garbage कलेक्शन को use करने के दो तरीके है :

Using System. gc() method :सिस्टम क्लास में static method gc () रहता है जो की JVM से Garbage collection को run करने की रिक्वेस्ट करता है |

Using Runtime. getRuntime(). gc() method : Runtime क्लास एप्लीकेशन को JVM के साथ interface करने के लिए allow करती है जिसमे application run हो रही है |

क्या Garbage collection का उपयोग करना अच्छा है ?

हाँ वैसे तो देखा जाये तो Garbage collection बहुत सारी potential प्रोब्लेम्स को रोकता है जैसे की dangling pointers , double free error , और कई तरह के memory leaks | जबकि ऐसा भी नहीं है की Garbage collection का use करना एक दम परफेक्ट काम है | Garbage collection का उपयोग करना कभी कभी ये illusion पैदा करता है की रिसोर्स मैनेजमेंट की अब कोई जरुरत नहीं है पर ऐसा बिलकुल भी नहीं है कभी कभी कुछ केस में मैन्युअल रिसोर्स मैनेजमेंट बहुत जरुरी होता है | और Garbage collection का use करते हुए कई बार हमें performance से compromise करना पड़ता है जो की कभी कभी दिक्कत पैदा कर सकता है |

OOP में Garbage collection कैसे होता है ?

जैसा की हम ऊपर पढ़ चुके है की Garbage collection में हम उन ऑब्जेक्ट्स की मेमोरी फ्री कर देते है जो की अब use में नहीं है | और यह Garbage collection का प्रोसेस का implementation हर language के लिए अलग अलग होता है | और कुछ हाई लेवल लैंग्वेज में यह Garbage collection का प्रोसेस in -built होता है |

java के अंदर Garbage collection का alternative क्या है ?

जावा में Garbage collection का alternative एक यही हो सकता है की एक dedicated object pool बना लिया जाये object की सभी डिफरेंट क्लासेज के लिए | और जैसे ही कोई ऑब्जेक्ट फ्री होता है तो उसे recycle कर उस पूल में रख लिया जाये | इस सभी फ्री objects को हम एक linked list बना कर रख सकते है | common डाटा स्ट्रक्चर के लिए ऑपरेटिंग सिस्टम अक्सर यह एप्रोच use करता है |

java के अंदर कितने Garbage collector होते है ?

जावा के अंदर 4 Garbage collector होते है | और ये सभी Garbage collector इस बात पर vary करेंगे की किस गार्बेज कलेक्टर का application throughput और application pause कैसा है |

java में Garbage collection के use के लिए कौन responsible है ?

java में Garbage collection के लिए memory management responsible है | और जबकि java से पहले वाली लैंग्वेज में यह सब रिस्पांसिबिलिटी programmer की रहती थी जैसे कि ऑब्जेक्ट मेमोरी को allocate और deallocate करना | ऐसे ऑब्जेक्ट जो अब किसी काम के नहीं है और वो किसी भी चीज़ को refrence नहीं कर रहे है उन objects से मेमोरी को फ्री करना यह सब काम programmer manually किया करते थे |

Garbage value का simple example दे कर समझाइये ?

अगर हम किसी प्रोग्राम में एक variable को declare कर देते है पर उसे कही पर भी use में नहीं लाते है तो यह वैल्यू Garbage value होती है |

किस language में Garbage collection होता है और किस में नहीं ?

वैसे तो लगभग सभी लैंग्वेज में जैसे की Python/Perl/Ruby/PHP/JS/Tcl/Lua/ेट्स में Garbage collection होता है | पर Bash और AWK में Garbage collection नहीं होता है | पर इनमे Garbage collection का काम कंपाउंड डाटा स्ट्रक्चर के द्वारा हो जाता है | और भी कई ऑप्शन होते है गार्बेज कलेक्शन का काम करने के लिए |

क्या C में Garbage collection होता है ?

C के अंदर कोई automatic Garbage collection नहीं होता है | अगर हम किसी भी प्रोग्राम के अंदर किसी ऑब्जेक्ट का ट्रैक खो जाता है तो फिर यह एक memory leak की तरह कंसीडर होता है | यह मेमोरी तो सिस्टम में रहती है पर इसे हम use नहीं कर पाते है | इसलिए ऑब्जेक्ट मेमोरी के पॉइंटर का ट्रैक पॉइंटर रखने की बहुत जरुरत होती है | इसलिए C के अंदर memory resource management बहुत जरुरी है |

क्या C ++ Garbage collection को सपोर्ट करता है ?

हाँ, कुछ हद तक C ++ Garbage collection को सपोर्ट करता है | C ++ 11 और उसके बाद के version में पूरी तरह तो नहीं पर एक लिमिट तक Garbage collection वर्क करता है |

Conclusion:

तो दोस्तों इस ब्लॉग(Garbage Collection In Java In Hindi) के अंदर हमने garbage collection को समझा हिंदी में | garbage collection का सीधा सा फंडा रहता है की प्रोग्राम में जो भी variable और object अब use में नहीं है उनकी मेमोरी को detect करके फ्री करना ताकि इस मेमोरी का उपयोग आगे और function और program कर सके | जावा के अंदर यह garbage collection का feature होता है |

इस ब्लॉग(Garbage Collection In Java In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते [email protected]पर ईमेल लिख सकते है|

आशा करता हूँ, कि आपने इस पोस्ट Garbage Collection In Java In Hindi को खूब एन्जॉय किया होगा|

आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|Garbage Collection In Java In Hindi|

आपका समय शुभ हो|

Anurag

I am a blogger by passion, a software engineer by profession, a singer by consideration and rest of things that I do is for my destination.

Leave a Reply

Your email address will not be published. Required fields are marked *