Garbage Collection In Java In Hindi|Garbage Collection kya hai?

हेलो दोस्तों आज के इस ब्लॉग पोस्ट(Garbage Collection In Java In Hindi) में मै आपको garbage collection के बारे में बताने वाला हूँ |

Garbage(Garbage Collection In Java In Hindi) का हिंदी में मतलब होता है कचरा, पर ये कचरा वो नहीं है जो हमारे घरों में सफाई के बाद निकलता है|

बल्कि यह कचरा एक तरह का digital कचरा होता है जो की programming के दौरान या प्रोग्राम के एक्सेक्यूटे होने के बाद memory में रह जाता है | Garbage Collection In Java In Hindi |

जब सिस्टम में किसी node अथवा memory के लिए रिक्वेस्ट आती है और सिस्टम में कोई भी मेमोरी या नोड available नहीं होता है|Garbage Collection In Java In Hindi|

तब garbage collector( Garbage Collection In Java In Hindi ) सिस्टम में से ऐसे फ्री नोड्स या मेमोरी को जिन्हे अब कोई एक्सटर्नल….

… पॉइंटर एक्सेस नहीं कर रहा है उन्हें कलेक्ट करके अपने पूल में डाल लेता है और फिर यह सारी मेमोरी फिर से 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 वर्क करता है |

What are the disadvantages of garbage collection? Garbage collection के क्या क्या disadvantage है?

Java में garbage collection के निम्नलिखित disadvantages है?

garbage collection जो है वो अपने साथ कुछ ओवरहेड लेकर आता है जो कि प्रोग्रामर के control से बाहर होता है|

और यह चीज़ एक large application scale पर कुछ परफॉरमेंस problem पैदा कर सकती है|

क्योकि एक बड़ी application में बहुत सारे threads, processors, अथवा sockets, हो सकते है…

…जो कि बहुत सारी memory को consume करते है|

What is the benefit of garbage collection in Java? Java में garbage collection के क्या फायदे है?

java के अंदर garbage collection एक ऐसे automated process है जिसमे प्रोग्राम से उस कोड को डिलीट कर दिया जाता है जिसकी अब कोई जरुरत नहीं होती है|

इस प्रोसीजर से मेमोरी फ्री हो जाती है और developer को जावा application के लिए coding करना आसान हो जाता है |

What is memory leak in Java? जावा के अंदर Memory leak क्या है?

Memory leak एक ऐसे situation होती है जिसमे प्रोग्राम के अंदर एक object अथवा objects जिसका अब कोई उपयोग नहीं होने वाला है |

पर उसी समय पर उन्हें लगातार काम कर रहा garbage collector भी remove नहीं कर सकता है|

How many types of garbage collectors are there in Java? java के अंदर garbage collector के कितने प्रकार होते है?

java के अंदर मुख्यरूप से चार प्रकार के garbage collector होते है|

और इन garbage collector को रेक्विरेमेंट के हिसाब से उपयोग किया जाता है|

Serial Garbage Collector.
Parallel Garbage Collector.
Concurrent Mark Sweep (CMS) Garbage Collector.
Garbage First (G1) Garbage Collector

You can also go through a few more blog links below related to core Java:

Stack vs Heap Memory Allocation In Hindi…
Inner Class In Java In Hindi…
Instance Variable vs Class Variable In Hindi…
Difference Between Instance Variable And Static Variable In Java…
Inner Class With Suitable Example In Java…
Difference Between PHP and JAVA In Hindi…
Why Java Is A Secure Language In Hindi…
Relational operator in Hindi in Java…
Logical operator in Hindi in Java…
Assignment Operator in Hindi in Java…
Unary operator in Java example in Hindi…
Arithmetic operators in Java in Hindi…
Operators In Java In Hindi…
Types Of Inheritance In Hindi…
Garbage Collection In Java In Hindi…
Interface In Java In Hindi|java में Interface क्या होता है…
Access Specifier In Java In Hindi…
Explain Types Of Jdbc Drivers In Detail…
Super Keyword In Java In Hindi…
Static Keyword in Java in Hindi…

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) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते support@a5theory.comपर ईमेल लिख सकते है|

आशा करता हूँ, कि आपने इस पोस्ट 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.