Java Integer compareTo()-为什么要使用比较与减法?

我发现该方法的java.lang.Integer实现compareTo如下所示:

public int compareTo(Integer anotherInteger) {

int thisVal = this.value;

int anotherVal = anotherInteger.value;

return (thisVal<anotherVal ? -1 : (thisVal==anotherVal ? 0 : 1));

}

问题是为什么使用比较而不是减法:

return thisVal - anotherVal;

回答:

这是由于整数溢出。当thisVal非常大且anotherVal为负数时,则从前者中减去后者会产生大于thisVal可能溢出至负数范围的结果。

以上是 Java Integer compareTo()-为什么要使用比较与减法? 的全部内容, 来源链接: utcz.com/qa/429461.html

回到顶部