首页 > 其他 > 详细

equals and '=='

时间:2020-11-09 10:47:58      阅读:24      评论:0      收藏:0      [点我收藏+]
public static void main(String[] args) {
Integer i=1;
Integer j=1;
System.out.println(i==j);
System.out.println(i.equals(j));
Integer i1=128;
Integer j1=128;
System.out.println(i1==j1);
System.out.println(i1.equals(j1));
int i2=1;
int j2=1;
System.out.println(i2==j2);
int i3=128;
int j3=128;
System.out.println(i3==j3);
}

以上输出结果是什么呢?

true
true
false
true
true
true

那么为什么第三个输出是false呢

在给Integer赋值时,实际上是bai自动装箱的过程,也就是调用了Integer.valueOf(int)方法,当这du个值大zhi于等于-128并且小于等于127时使用了常量池,所以前两个地址是相等的,但是后两个超过了127,故不使用常量池。

equals and '=='

原文:https://www.cnblogs.com/saorui/p/13947203.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!