# मेमोरी व गार्बेज कलेक्शन — एडवांस्ड जावा

Source: https://www.geekswithgeeks.com/hi/advanced-java/adv-memory-gc

> स्टैक, हीप व reachability समझें, G1, ZGC व Shenandoah जैसे जेनरेशनल कलेक्टर कैसे काम करते हैं, और GC के बावजूद लीक कैसे होते हैं।

## स्टैक बनाम हीप

हर थ्रेड का **स्टैक** लोकल वेरिएबल रखता है। सभी ऑब्जेक्ट साझा **हीप** पर होते हैं। किसी GC रूट से न पहुँच पाने पर ऑब्जेक्ट संग्रह योग्य है।

## जेनरेशनल कलेक्टर

अधिकांश ऑब्जेक्ट जल्दी मरते हैं, इसलिए हीप में young व old जेनरेशन होते हैं। **G1** डिफ़ॉल्ट है; **ZGC**/**Shenandoah** बहुत कम पॉज़ देते हैं।

## GC भाषा में मेमोरी लीक

लीक फिर भी संभव: static कलेक्शन में रखे ऑब्जेक्ट, असीमित कैश, न हटाए गए लिसनर, कभी साफ़ न किए `ThreadLocal`।
