调用方法时,将对象作为参数发送比原始变量更慢吗?

时间:2013-06-25 16:39:12

标签: java performance

我找不到任何有关此问题的最佳做法指南或问题。

public void method(int primitiveVar)
{

}

vs

public void method(CustomObject objectVar)
{
    // am I slower or do I generate any problem at all?
}

在调用方法时,使用其中一个是否会提高性能?

由于

3 个答案:

答案 0 :(得分:3)

就像其他答案一样,无论你做什么,它很可能不会对性能产生影响。但是如果你打算传递大量的原语,我只需要传递并反对以获得更有效的易读代码。

答案 1 :(得分:2)

对象按值传递,这意味着复制参数然后传递给正在执行的方法。因此,如果传递引用(即传递对象时执行的操作),则会复制该引用。它应该与传递原语的速度相同,但我可以在理论上看到,如果对某个对象的引用使用的字数多于某些原始类型,那么在某些自定义硬件上它可能会更慢。

答案 2 :(得分:0)

这并不重要。但是,如果仍然是这个问题,那么通过原语共享有时会有优势(取决于你的编写方式和你在做什么),因为引用实际上是对原语进行了拆箱。