Are Java static calls more or less expensive than non-static calls?

Andy Faibishenko picture Andy Faibishenko · Sep 27, 2010 · Viewed 45.7k times · Source

Is there any performance benefit one way or another? Is it compiler/VM specific? I am using Hotspot.

Answer

Anon picture Anon · Sep 27, 2010

First: you shouldn't be making the choice of static vs non-static on the basis of performance.

Second: in practice, it won't make any difference. Hotspot may choose to optimize in ways that make static calls faster for one method, non-static calls faster for another.

Third: much of the mythos surrounding static versus non-static are based either on very old JVMs (which did not do anywhere near the optimization that Hotspot does), or some remembered trivia about C++ (in which a dynamic call uses one more memory access than a static call).