-
范围: -128 ~ 127
-
先上代码
-
为什么a == b 为true? c == d 为false
java为了提高效率,初始化了 -128~127之间的整数对象,所以在赋值时,会先调用 Integer 的 valueOf()方法,判断是否符合 取值范围,如果符合进入IntegerCache的数组中根据 [i + (-IntegerCache.low)]下标取值,如果不符合,就new一个新的对象。 -
原码
范围: -128 ~ 127
先上代码
为什么a == b 为true? c == d 为false
java为了提高效率,初始化了 -128~127之间的整数对象,所以在赋值时,会先调用 Integer 的 valueOf()方法,判断是否符合 取值范围,如果符合进入IntegerCache的数组中根据 [i + (-IntegerCache.low)]下标取值,如果不符合,就new一个新的对象。
原码