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;
}