为什么做期末考试会加快进度



可能重复:
为什么将类定义为final可以提高JVM性能?

我在我的项目中有以下课程:

public final class LinkNode
{
  public int value;
  public LinkNode next;
  public LinkNode(int value, LinkNode next)
  {
    this.value = value;
    this.next = next;
  }
  public LinkNode(int value)
  {
    this(value, null);
  }
}

我的代码中最慢的一行(总体上相当复杂)是我构建新的LinkNode s的地方。

我发现,当我创建类final时,代码运行速度明显更快。为什么?

在这个类中,我还能做些什么来优化这个类,特别是主构造函数吗?

(例如,getter/setter比公共字段快吗?我可以添加其他修饰符吗?等等。)

我发现,当我将该类设置为final时,代码运行速度明显更快。为什么?

我认为这是因为你的基准测试方法存在缺陷。

假设您使用的是最新的Hotspot JRE,JIT编译器足够聪明,类上的final修饰符应该不会对性能产生影响。。。除非您在应用程序中实际使用该类的子类。

如果您想要确认,请发布方法的详细信息,包括基准代码和基准结果。

声明类final直接影响JVM的性能。最终类和方法可以在加载到JVM后内联,因为在这一点上JVM肯定知道该方法是最终的。因此,即时Java编译器的性能可能会有所提高。

您可能需要查看此处提供的链接以了解更多详细信息:http://www.javaperformancetuning.com/tips/final.shtml

相关内容

最新更新