में संशोधक जब org.apache.log4j.Logger
के लिए वर्ग फ़ाइल में देख यह नाम class$org$apache$log4j$Logger
साथ प्रकार Class
के एक सिंथेटिक क्षेत्र को परिभाषित करता है।अस्पष्ट क्षेत्र और log4j लॉगर
बाइट कोड को देखने से, यह स्पष्ट है कि यह फ़ील्ड स्वयं-संदर्भित वर्ग का प्रतिनिधित्व उस समय से करती है जहां निरंतर पूल अभी तक संदर्भ प्रकार नहीं दे सकता है। हालांकि मैं अजीब लगता हूं कि इस क्षेत्र का संशोधक 0x41008
है जो private
, synthetic
फ़ील्ड इंगित करता है (जो मैं अनुसरण कर सकता हूं) लेकिन जो एक संशोधक 0x40000
जोड़ता है जिसे मैं कहीं भी दस्तावेज नहीं ढूंढ सकता।
यह संशोधक बिट 1 पर कहां से आता है और यह क्या व्यक्त करता है? (Log4j जावा 1 के लिए संकलित है)।
यह निरंतर पूल नहीं है जो कि संदर्भों का संदर्भ नहीं दे सका, लेकिन 'एलडीसी' निर्देश जो 'क्लास' ऑब्जेक्ट को ऑपरेंड स्टैक पर लोड नहीं कर सका। लेकिन कक्षा निरंतर पूल प्रकार पहले से ही 'इस' और 'सुपर' प्रकार को निर्दिष्ट करने, संदर्भित इंटरफेस और संदर्भित सदस्यों के वर्गों की घोषणा करने के लिए मौजूद है। – Holger