equals和 ==对int和Integer类型

在这里插入图片描述
= =如果是primitive主类型,那么比较值;如果是对象,那么比较引用地址equals需要根据具体对象的实现来判断,在Integer里面是判断值是否相等一般说来,如果是两个Integer类型进行= =比较,就是比较两个Integer对象的地址。但是有一点需要注意的是在-128至127这个区间,如果创建Integer对象的时候(1)Integer i = 1; (2) Integer i = Integer.valueOf(1); 如果是这两种情况创建出来的对象,那么其实只会创建一个对象,这些对象已经缓存在一个叫做IntegerCache里面了,所以= =比较是相等的。如果不在-128至127这个区间,不管是通过什么方式创建出来的对象,==永远是false,也就是说他们的地址永远不会相等

猜你喜欢

转载自blog.csdn.net/weixin_43113679/article/details/88547920