में उनके संग्रहण के संदर्भ में अमूर्त वर्ग और इंटरफ़ेस के बीच क्या अंतर है JVM में उनके संग्रहण के संदर्भ में अमूर्त वर्ग और इंटरफ़ेस के बीच क्या अंतर है। अधिक सटीक होने के लिए JVM स्टोर अपनी स्मृति में कहां इंटरफेस करता है?JVM
JVM
उत्तर
चेतावनी: जैसा कि @ वासिलियास द्वारा उल्लेख किया गया था, यह यांत्रिकी ओरेकल हॉटस्पॉट जेवीएम के लिए विशिष्ट है।
Java8
से पहले सभी मेटा जानकारी PermGen में संग्रहीत किया जाता है, दोनों सार वर्गों और इंटरफेस के लिए। मेटा जानकारी में केवल वर्ग विशिष्ट जानकारी शामिल है (इसमें कौन से फ़ील्ड हैं, माता-पिता क्या हैं, आदि)।
इंटरफ़ेस में केवल public static final
फ़ील्ड हो सकते हैं, इसलिए इस फ़ील्ड मेटा की जानकारी PermGen में संग्रहीत की जाती है।
सार कक्षा में स्थैतिक और गैर स्थैतिक दोनों क्षेत्र हो सकते हैं। हालांकि, मेटा की जानकारी के मामले में कोई अंतर नहीं है, इसलिए यह भी पर्मजेन में संग्रहीत है। दूसरी ओर, वास्तविक वस्तु उदाहरण स्थिर और गैर स्थैतिक दोनों क्षेत्रों के लिए हीप में संग्रहीत किए जाते हैं।
उदाहरण देखें
public class MyClass {
public static final Calendar calendar = Calendar.getInstance();
private Date myDate = new Date();
}
फील्ड जानकारी के बारे में calendar
और myDate
PermGen में संग्रहीत किया जाता है और वास्तविक वस्तु उदाहरणों ढेर में संग्रहीत हैं।
में Java8 PermGen ढेर अंतरिक्ष के अंदर ले जाया गया था, Metaspace तथाकथित में है, तो आप java.lang.OutOfMemoryError: PermGen space
अब और नहीं देख सकेंगे। हालांकि, मेटा सूचना और ऑब्जेक्ट आवंटन स्मृति के बीच वैचारिक अलगाव अभी भी मौजूद है।
भी @AlexTaylor विनिर्देश उद्धरण की समीक्षा करें।
method area (तार्किक ढेर का हिस्सा) वर्गों और JVM में इंटरफेस के बारे में जानकारी का एक बहुत संग्रहीत करता है:
हालांकि... इस तरह के लगातार पूल चलाने के समय, क्षेत्र के रूप में भंडार प्रति वर्ग संरचना और विधि डेटा, और विधियों और रचनाकारों के लिए कोड, सहित विशेष विधियों (§2.9) कक्षा और उदाहरण प्रारंभिक और इंटरफेस प्रारंभिक में उपयोग किया जाता है।
:
इस विनिर्देशन विधि क्षेत्र या संकलित कोड के प्रबंधन में इस्तेमाल की नीतियों के स्थान जनादेश नहीं है।
जिसका अर्थ है कि एक विशेष जेवीएम जहां भी इसे पसंद करता है उन्हें स्टोर करने के लिए स्वतंत्र है।
- 1. JVM
- 2. JVM
- 3. JVM
- 4. JVM
- 5. JVM
- 6. JVM
- 7. JVM
- 8. JVM
- 9. JVM
- 10. JVM
- 11. JVM
- 12. JVM
- 13. JVM
- 14. क्या JVM युक्ति, JVM कार्यान्वयन, JVM क्रम के बीच अंतर
- 15. JVM बाहर मेमोरी आवंटित करने और JVM
- 16. JVM मतभेद
- 17. कैसे JVM
- 18. JVM रनटाइम
- 19. जावा - JVM
- 20. एकल JVM
- 21. शुद्धता/JVM
- 22. प्रिंट सभी JVM झंडे
- 23. 'jvm-1.8' '-target'
- 24. एक 64 बिट JVM
- 25. संदर्भ मूल धागा JVM
- 26. 64 बिट JVM
- 27. सैंडबॉक्स JVM अविश्वस्त स्रोतों
- 28. जावा कैसे JVM
- 29. Ehcache एकाधिक JVM - opensource?
- 30. 64 बिट JVM
ढेर, क्योंकि इंटरफेस केवल कक्षाओं में कार्यान्वयन के रूप में मौजूद हैं और वे ढेर पर हैं। – Hiru
क्या यह पूरी तरह से जानकारीपूर्ण है या आप कुछ हासिल करने की कोशिश कर रहे हैं? –
यह जेवीएम पर निर्भर करता है क्योंकि जेवीएम चश्मा यह नहीं कहता कि स्मृति कैसे व्यवस्थित की जानी चाहिए ... – assylias