java - Why == for Integer.valueOf(500) returns false but true for 5? -


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

  • 5 जवाब
  System.out .println (पूर्णांक.वल्यूउफ़ (5) == पूर्णांक.वल्यूओफ़ (5)); System.out.println (पूर्णांक.वल्यूओफ़ (500) == पूर्णांक.वल्यूओफ़ (500));  

आउटपुट है

  true false  

पहली पंक्ति क्यों सच रिटर्न करती है, लेकिन दूसरी पंक्ति झूठी वापसी करती है ? यहाँ क्या चाल है क्योंकि दोनों कॉलिंग valueOf () पर पूर्णांक वर्ग कर रहे हैं।

कम संख्या वाली पूर्णांक ऑब्जेक्ट्स के कैश्ड उदाहरण हैं, लेकिन उच्च मूल्य वाले पूर्णांक ऑब्जेक्ट नहीं हैं।

यदि आपने पहले नोटिस नहीं किया है, तो आप वस्तुओं की तुलना कर रहे हैं, नहीं ints।


Comments