是不是写得比较好
int primitive1 = 3, primitive2 = 4;
Integer a = new Integer(primitive1);
Integer b = new Integer(primitive2);
int compare = a.compareTo(b);
or
int primitive1 = 3, primitive2 = 4;
int compare = (primitive1 > primitive2) ? 1 : 0;
if(compare == 0){
compare = (primitive1 == primitive2) ? 0 : -1;
}
我认为第二个更好,应该更快并且对内存进行了更多优化。但他们不是平等的吗?
为了提高性能,通常最好使代码尽可能简单明了,这通常会表现良好(因为 JIT 会最好地优化此代码)。就您而言,最简单的示例也可能是最快的。
我会做任何一个
int cmp = a > b ? +1 : a < b ? -1 : 0;
或更长的版本
int cmp;
if (a > b)
cmp = +1;
else if (a < b)
cmp = -1;
else
cmp = 0;
or
int cmp = Integer.compare(a, b); // in Java 7
int cmp = Double.compare(a, b); // before Java 7
如果不需要,最好不要创建对象。
就性能而言,第一个是最好的。
如果您确定不会出现溢出,则可以使用
int cmp = a - b; // if you know there wont be an overflow.
你不会比这更快了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)