Java比较速度
我想知道物体和原始物体的速度差异有多大。想象一下链表实现中的这段代码,使用哪种方法“更好”Java比较速度,java,performance,jvm,Java,Performance,Jvm,我想知道物体和原始物体的速度差异有多大。想象一下链表实现中的这段代码,使用哪种方法“更好” 在现代32位或64位机器上,比较int值和使用=比较参考值的时间应相同 我还应该指出,过早的微观优化通常是个坏主意。除非你是一名出色的程序员,否则你对什么更快、什么需要优化的直觉将不够完美。如果你根据你的直觉(或我们的直觉!)进行优化,你很可能会浪费大量时间,而没有多少可测量的好处。在现代32位或64位机器上,比较int值和使用=比较参考值的时间应该是相同的 我还应该指出,过早的微观优化通常是个坏主意
在现代32位或64位机器上,比较
int
值和使用=
比较参考值的时间应相同
我还应该指出,过早的微观优化通常是个坏主意。除非你是一名出色的程序员,否则你对什么更快、什么需要优化的直觉将不够完美。如果你根据你的直觉(或我们的直觉!)进行优化,你很可能会浪费大量时间,而没有多少可测量的好处。在现代32位或64位机器上,比较
int
值和使用=
比较参考值的时间应该是相同的
我还应该指出,过早的微观优化通常是个坏主意。除非你是一名出色的程序员,否则你对什么更快、什么需要优化的直觉将不够完美。如果你根据你的直觉(或我们的直觉!)进行优化,你很可能会浪费大量时间,而没有什么可测量的好处。使用你想要的。它不会有任何区别。使用原语更有效:-您可以在单元测试中自己检查这一点。但是,对于您的示例,由于是简单的
==
检查,而不是.equals()
,所以应该没有太大区别。@JonathanSterling这与给定的问题不太一样。请看一些细节。@JonathanSterling这是一个完全无关的问题。OP在这里比较对象引用。@JonathanSterling-这是比较int==int
和Integer==int
。第二种情况有取消装箱的开销。请使用您想要的。它不会有任何区别。使用原语更有效:-您可以在单元测试中自己检查这一点。但是,对于您的示例,由于是简单的==
检查,而不是.equals()
,所以应该没有太大区别。@JonathanSterling这与给定的问题不太一样。请看一些细节。@JonathanSterling这是一个完全无关的问题。OP在这里比较对象引用。@JonathanSterling-这是比较int==int
和Integer==int
。第二种情况有拆箱的开销。
int size = 0;
Node head;
boolean isEmpty1() {
return head == null;
}
boolean isEmpty2() {
return size == 0;
}