2016-12-04 19 views
5

प्रलेखन में हमारे पासkotlin पूर्णांक बॉक्स्ड पहचान

ध्यान दें कि संख्या की मुक्केबाजी पहचान

लेकिन अगले उदाहरण देने के अलग-अलग परिणाम

val number1 = 127 
val b1 : Int? = number1 
val b2 : Int? = number1 
print(b1 === b2) // this prints true 

val number2 = 128 
val c1 : Int? = number2 
val c2 : Int? = number2 
print(c1 === c2) // this prints false 

संख्या में अधिक से अधिक संरक्षण नहीं करती है अपेक्षित 127 कामों की तुलना में, लेकिन जब 128 (8 बिट्स) से ऊपर नहीं है, क्यों?

उत्तर

8

यह लेख यह बताते हैं: http://javapapers.com/java/java-integer-cache/

मूल विचार है कि जावा मानक lib -128 और 127 के बीच मूल्यों के लिए एक कैश का उपयोग करता है, इसलिए वे हमेशा एक ही पूर्णांक वस्तु (पहचान) के द्वारा देखें।