2013-05-23 6 views
20

क्या है Klass & KlassKlass जेवीएम हॉटस्पॉट कार्यान्वयन में क्या है?क्लास और क्लासक्लास

जहां तक ​​मेरा लेख Presenting the Perm Generation से समझ में आया, Klass एक जावा वर्ग के आंतरिक प्रतिनिधित्व है & यह बाईटकोड सहित वर्ग की संरचना के बारे में बुनियादी जानकारी का आयोजन करेगा (मान लीजिए कि A हैं)। यह एक वस्तु के रूप में ही संग्रहीत किया जाएगा। कक्षा ए के प्रत्येक ऑब्जेक्ट में आंतरिक प्रतिनिधित्व Klass पर पर्मगेन

में मौजूद पॉइंटर होगा, KlassKlass Klass कक्षा का आंतरिक प्रतिनिधित्व है। KlassKlass क्यों आवश्यक है? यह कितनी अतिरिक्त जानकारी संग्रहीत कर रहा है?

इसके अलावा, KlassKlass'sKlass पॉइंटर पॉइंट स्वयं ही, मुझे यह समझ में नहीं आया।

उत्तर

20

स्थायी पीढ़ी a.k.a permgen उस स्थान के लिए संदर्भित किया जाता है जहां सभी वर्ग संबंधित जानकारी संग्रहीत की जाती है। इसे कभी-कभी विधि-क्षेत्र के रूप में जाना जाता है।

public class Parent 
{ 
    ... 
} 

यहाँ:

  • new Parent()Parent वर्ग की एक वस्तु है

    निम्नलिखित कोड का एक उदाहरण लेते हैं।

  • (new Parent()).getClass() माता-पिता के Klass को संदर्भित करता है। इस ऑब्जेक्ट का संदर्भ प्रकार java.lang.Class<Parent> होगा। यह Parent की एनोटेशन, कन्स्ट्रक्टर, फ़ील्ड, विधियों, इसकी विरासत (सुपरक्लास, इंटरफेस) इत्यादि के बारे में जानकारी संग्रहीत करेगा
  • KlassKlass (new Parent()).getClass().getClass() होगा। इस ऑब्जेक्ट का संदर्भ प्रकार java.lang.Class<java.lang.Class> होगा। यह java.lang.Class के एनोटेशन, कंस्ट्रक्टर्स, खेतों, तरीकों के बारे में जानकारी, इसकी विरासत (सुपर क्लास, इंटरफेस), आदि

सैद्धांतिक रूप से, इस श्रृंखला पर जा सकते हैं लेकिन KlassKlassKlass KlassKlass के रूप में ही किया जाएगा परिभाषित करता है।

इनशोर्ट, क्लासक्लास का अर्थ है कि आपके पास java.lang.Class ऑब्जेक्ट होगा जो java.lang.Class के व्यवहार को परिभाषित करता है।

आशा इस मदद करता है

-1

एक क्लास को टेम्पलेट/ब्लू प्रिंट के रूप में परिभाषित किया जा सकता है जो उसके प्रकार के समर्थन के उद्देश्य वाले व्यवहार/राज्यों का वर्णन करता है।

1

आप हॉटस्पॉट में भंडारण प्रबंधन का एक अच्छा सामान्य समझ है लगते हैं। कुछ और विशिष्ट विवरण प्राप्त करने के लिए घोड़े के मुंह पर जाना अच्छा विचार है - इस मामले में हॉटस्पॉट के डेवलपर्स। This page स्टोरेज प्रबंधन प्रणाली का उनका विवरण है।

ऐसी परिस्थितियों में जहां मैं यह जानना चाहता हूं कि मैं कुछ कोड क्या करता हूं और कोड ढूंढता हूं और इसे पढ़ता हूं। इस मामले में हम KlassKlass वर्ग here का कार्यान्वयन पा सकते हैं। यह Klass के शीर्ष पर एक अतिरिक्त जानकारी नहीं दिखता है - जो देखने के लिए बहुत दिलचस्प है। ध्यान दें कि KlassKlassKlass फैलाता है।

तो हमें इसकी आवश्यकता क्यों है? खैर, हम एक पेड़ के रूप में एक विशेष कार्यक्रम के Klass पदानुक्रम को निकाल सकते हैं जहां एक Klass दूसरे का वर्णन करता है। सब कुछ एक विवरण की जरूरत है, लेकिन हम हमेशा के लिए इस तरह नहीं जा सकते हैं, हमें fixed point खोजने की आवश्यकता है जहां हम कुछ चीज का वर्णन करने के लिए उपयोग करते हैं - इसलिए हम रोक सकते हैं!

तो, संक्षेप में KlassKlass मौजूदा से कुछ भी अधिक उपयोगी नहीं करता है। इसे अस्तित्व में रहने की जरूरत है, लेकिन इसका अस्तित्व उचित रूप से अनिच्छुक है।

संबंधित मुद्दे