2016-12-04 21 views
5

sayılardan oluşan boks kimliğineKOTLIN int kutulu kimlik belgelerinde

ama sonraki örnekler vermek farklı sonuçlar

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 
rakamlarda

büyük korumadığını

Not sahip 127'den fazla beklendiği gibi çalışıyor ama 128'in üstünde (8 bit), neden?

cevap

8

Bu makale bunu açıklıyor: http://javapapers.com/java/java-integer-cache/

temel fikir Java standart lib -128 ile 127 arasındaki değerler için bir önbellek kullanır yani, bu nedenle her zaman (kimliğin) aynı Integer nesnesi bakın.