Integer类明明相等的值为什么却不相等
2019-03-24 本文已影响0人
噜智深
Integer
类对象的值在-127 ~ 128
之间时,可以用==
比较,超出这个范围则只能使用equals()
。
Integer a = -100;
Integer b = -100;
Integer c = 130;
Integer d = 130;
a == b //true
c == d //false
c.equals(d) //true
或者使用intValue()
方法转换成基本数据类型再用==
进行比较亦可。
c.intValue() == d.intValue() //true
由此可以得出,其他包装类,如Double
、Long
也遵循这样的规则。