Java速度和内存占用“比赛”

时间:2012-06-03 19:36:52

标签: java

我对Java有一般性质疑。

什么更好?

案例1:

a = method1(7);
b = method2(a);
c = method3(b);

c = method3(method2(method1(7)));

案例2:

String a = method1(1);
String b = method2(2);
String c = method3(3);
String d = a+b+c;

String d = method1(1)+method2(2)+method3(3);

我想知道什么会更好的速度...... 我想第二种方式(两者都是)更好的占用内存,但我总是想知道一个是否比另一个更快或是否需要相同的时间来执行。我制作了一个多次调用相同功能的程序,所以每个毫秒都很重要!

如果还有其他类别可以参加比赛(速度除外等),请告诉我!

1 个答案:

答案 0 :(得分:4)

执行速度没有明显差异。使用临时变量进行中间结果的代码之间的唯一区别是,您可以在调试器中看到中间值。此外,如果在调用目标函数之后没有使用中间变量的值,那么很有可能编译器会优化这些变量,从而生成相同的字节代码。