Tuesday, 15 May 2012

java - Is Boolean.TRUE rather than true an autoboxing optimization? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 9 जवाब

    मैंने निम्नलिखित कोड को देखा और सांकेतिक शब्दों में कहने का इरादा सोच रहा था क्या यह autoboxing का संबंधित प्रदर्शन है?

      map.put ("does not matter", बूलियन.TRUE);   

    वह कर सकता था:

      map.put ("does not matter", सच है);   

    पहले करने का कोई लाभ?

    मेरे पास है एक उदाहरण लिखा गया:

      सार्वजनिक वर्ग डेमो {मानचित्र & lt; स्ट्रिंग, बूलियन & gt; नक्शा = नया हैशमैप & lt; & gt; (); अमान्य () {map.put ("a", सच); } शून्य ऑब्जेक्ट () {map.put ("b", बूलियन.TRUE); }}   

    आदिम ()

      0 aload_0 1 getfield # 17 के बाइटकोक को देखो & lt; डेमो / नक्शा Ljava / util / मानचित्र; & gt; 4 एलडीसी # 24 & lt; ए & gt; 6 iconst_1 7 invoxestatic # 26 & lt; जावा / लाँग / बूलियन / मूल्यऑफ़ (जेड) Ljava / lang / boolean; & gt; 10 इनवॉइंइंटरफेस # 32 & lt; java / util / map / put (Ljava / lang / ऑब्जेक्ट; Ljava / lang / ऑब्जेक्ट;) Ljava / lang / ऑब्जेक्ट; & gt; गिनती 3 15 पॉप 16 रिटर्न   

    और ऑब्जेक्ट का बाइट कोड ()

      0 aload_0 1 getfield # 17 & lt; डेमो / नक्शा Ljava / util / map; & gt; 4 एलडीसी # 39 & lt; b & gt; 6 गेटस्टैटिक # 41 & lt; जावा / लैंग / बूलियन / TRUE Ljava / lang / boolean; & gt; 9 इनवॉइंइंटरफेस # 32 & lt; java / util / map / put (Ljava / lang / ऑब्जेक्ट; Ljava / lang / ऑब्जेक्ट;) Ljava / lang / object; & gt; गिनती 3 14 पॉप 15 रिटर्न   

    निष्कर्ष:

    आदिम का उपयोग करते समय, Boolean.valueOf () कॉल करने वाला एक अतिरिक्त कदम है, लेकिन यदि आप कोड के उस टुकड़े को अक्सर चलाते हैं, तो JIT संकलक यह काम करेगा और उसे दूर करेगा।

No comments:

Post a Comment