什么是更快的传递对象在函数中或静态调用它

时间:2017-08-03 20:19:00

标签: java

假设我需要访问变量'asdf'约1000次。

什么会更快:创建对象Foo并将其作为参数传递给bar构造函数并通过getter访问它或静态访问Foo的数字。或者那两种方法具有相同的性能?

Class Foo {
   public int asdf;
} 

Class Bar {
   Foo foo;
   Bar(Foo foo1) {
      this.foo = foo;
   }
   public void funcBar() {
        foo.asdf;
   }
}

Class Foo {
   public static int asdf;
} 

Class Bar {
   public void funcBar() {
        Foo.asdf;
   }
}

2 个答案:

答案 0 :(得分:7)

1000次没什么。

因此,您编写了使用直接和“干净”方式完成工作的代码。

担心好的设计,而不是浪费时间来解决不存在的性能问题。

答案 1 :(得分:2)

作为对你的问题的纯粹回答,根据SO用户Mike Nakis的说法,静态调用将是最快的,其次是非虚拟调用,然后是虚拟调用。你可以看到他的回答here。仍然,寻求代码可读性。拥有清晰,可维护的代码比压缩每一盎司性能的代码更好,但其他开发人员无法理解。在许多情况下,检索的速度可以忽略不计。