关于Integer的一些问题
直接上代码
public class HelloWorld {
public static void main(String[] args) {
Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;
}
}
请问以下哪些判断会返回false()
f1 == f2
f3 == f4
f1.equals(100)
f1 == 100
因为Integer类型在-128-127范围之内是被缓存了的,也就是每个对象的内存地址是相同的,赋值就是直接在缓存中取值即可。超过这个范围,就会重新创建一个Integer对象,地址就不同的。