आप एक आंतरिक वर्ग डिकंपाइल (या डीबगर का उपयोग कर इसे देखना) आप देख सकते हैं नहीं है, तो बाहरी वर्ग के उदाहरण को एक्सेस करने के लिए उत्पन्न कोड जो उन्हें बनाने के लिए उपयोग किया गया था। इसके लिए ओवरहेड अतिरिक्त पॉइंटर के लिए अधिक स्मृति है, परीक्षण के लिए अतिरिक्त सूचक के कारण कचरा संग्रह के लिए अधिक सीपीयू, और यदि आप चुनना चाहते हैं, तो समय संकलित करें। गैर स्थैतिक आंतरिक वर्गों के उदाहरण बनाना थोड़ा अधिक जटिल है क्योंकि आपको उन्हें बनाने के लिए बाहरी वर्ग के उदाहरण की आवश्यकता है।
स्थैतिक और गैर स्थैतिक आंतरिक कक्षाओं दोनों की दृश्यता नियंत्रित की जा सकती है। आम तौर पर वे निजी होते हैं यदि उनका कार्यान्वयन बाहरी वर्ग के आंतरिक विवरणों से दृढ़ता से जुड़ा हुआ है, और डेवलपर को नहीं लगता कि कोड का पुन: उपयोग किया जा सकता है। इस अर्थ में वे निजी कार्यों से बेहतर नहीं हैं। आंतरिक कक्षाएं Map.Entry जैसे मामलों में सार्वजनिक हो सकती हैं, जहां आंतरिक वर्ग कक्षा द्वारा उजागर इंटरफ़ेस से दृढ़ता से जुड़ा हुआ है, और डेवलपर ऐसा नहीं सोचता कि मानचित्र। एंटर्री का उपयोग किसी प्रकार के मानचित्र के बिना किया जा सकता है। दोनों प्रकार के बाहरी वर्ग के निजी सदस्यों तक पहुंच है और बाहरी वर्ग के पास आंतरिक वर्ग के निजी सदस्यों तक पहुंच है।
स्थैतिक और गैर स्थैतिक आंतरिक कक्षाओं के उदाहरण कचरे को हर दूसरे वर्ग की तरह एकत्रित किया जाता है।बाहरी वर्ग के हथियार संग्रह और आंतरिक वर्ग के कचरे के संग्रह के बीच कोई विशेष संबंध नहीं है।
स्विंग या एंड्रॉइड जैसे UI वर्ग कार्यान्वयन के मामले में आप स्थिर आंतरिक कक्षाएं देखेंगे क्योंकि उन्हें निजी फ़ंक्शन की तरह माना जाता है। इन वर्गों को बाहरी वर्ग के बाहर पुन: प्रयोज्यता के लिए विकसित नहीं किया गया है और बाहरी वर्ग के आंतरिक कार्यान्वयन से दृढ़ता से जुड़े हुए हैं। उन्हें बेनकाब करने और यह सुनिश्चित करने के लिए कोई कारण नहीं है कि वे बाहरी वर्ग की आवश्यकताओं के विशिष्ट संदर्भ की तुलना में अधिक मामलों में काम कर सकें।
यह सच है, लेकिन और भी है - कभी-कभी आपके पास बाहरी वर्ग का संदर्भ नहीं होता है और फिर भी आंतरिक (यदि यह दिखाई देता है) को तुरंत चालू करना चाहता है। – ognian
इंप्रेशन के लिए +1 क्या संकलक इनपुट स्रोत से बाहर निकलता है – Seven
गैर-स्थैतिक आंतरिक वर्ग स्पष्ट रूप से बाह्य के संदर्भ को घोषित नहीं कर सकता है (केवल मैन्युअल रूप से इसे तुरंत चालू करने की आवश्यकता है), इस प्रकार दोनों दुनिया के सर्वश्रेष्ठ प्रदान करते हैं: स्थिर स्मृति लागत के बिना बाहरी संदर्भ? इसके अलावा, एक स्थैतिक आंतरिक वर्ग गैर-पुनर्वित्तक नहीं है, इसलिए केवल उस मामले में उपयोगी होना जहां इसके एक उदाहरण की आवश्यकता है? – samosaris