为什么在 Java 中128==128返回false,而127==127返回true呢?
有这样一段代码
Integer a=127; Integer b=127; System.out.println(a==b); Integer c=128; Integer d=128; System.out.println(c==d);
运行结果为:
true false
究竟是为什么呢?
如果两个引用指向相同的对象,它们在 ==
表达式中是相等的;如果两个引用指向不同的对象,尽管它们拥有相同的内容即值,在 ==
表达式中也是不相等的。
查看源码你就会发现,在Integer类的内部设置了缓存,为-128到127之间,所以只要在这个区间之间,就是同一对象,并没有创建新的对象
欢迎添加本人微信,带你加入Java学习交流群,还有学习资料等你获取。