Java 与不从方法返回值相比,返回值对性能有影响吗?
如果有一个对象的添加方法,并且为了构造方便Java 与不从方法返回值相比,返回值对性能有影响吗?,java,optimization,methods,return,Java,Optimization,Methods,Return,如果有一个对象的添加方法,并且为了构造方便 Objeckt o=newobjeckt().add(新元素()) 使用这种方法会花费更多吗 Objeckt add(Element e){ return this; } 而不是 void add(Element e){ } 感谢@ventiseis: (与原语返回类似,和) 如果未引发异常,则值将从当前帧(§2.6)的操作数堆栈中弹出,并推送到调用程序帧的操作数堆栈上。当前方法的操作数堆栈上的任何其他值都将被丢弃 如果未引发异常,则
Objeckt o=newobjeckt().add(新元素())代码>
使用这种方法会花费更多吗
Objeckt add(Element e){
return this;
}
而不是
void add(Element e){
}
感谢@ventiseis:
(与原语返回类似,和)
如果未引发异常,则值将从当前帧(§2.6)的操作数堆栈中弹出,并推送到调用程序帧的操作数堆栈上。当前方法的操作数堆栈上的任何其他值都将被丢弃
如果未引发异常,则丢弃当前帧(§2.6)的操作数堆栈上的任何值
本规范规定:
如果返回一个值,该值将从操作数堆栈弹出,并推送到调用帧的操作数堆栈上
如果没有返回值,则不会弹出或推送任何内容
因此不返回值应该更有效。
当然,如果调用框架中没有使用返回值,那么这个答案不会考虑优化问题。您设计的是哪种性能如此关键的系统?我只是想知道它是否有任何区别。或者,如果值为none(void),它仍然需要返回一个空白。对不起,我投票结束这个问题,因为不清楚。这个问题的答案取决于jvm和使用的操作系统。请阅读技术文档,了解字节码是如何执行的,有时通过即时编译进行优化的。我看不出有什么理由必须返回空白值之类的内容。