在Java中效率不是更高。在递增/递减运算符可以重载的语言中,它可能会更有效,但在其他方面,性能则完全相同。
x++和之间的区别在于
++x,
x++返回的值
x
是递增之前的值,返回的值是递增之后
++x的值
x。就代码生成而言,两者都构成了完全相同数量的指令,至少在您可以互换使用两者时(如果不能互换使用,则不必担心哪一个更快),应该选择您需要的那个)。唯一的区别是增量指令的放置位置。
在C
中,类可以重载prefix(++x
)和postfix(x++
)运算符。当处理使它们过载的类型时,使用前缀运算符通常快得多,因为后缀运算符的语义将返回对象的副本,与增量之前一样,即使您不使用它,同时前缀运算符可以简单地返回对修改后的对象的引用(上帝知道C
开发人员更喜欢返回引用而不是副本)。这 可能 是考虑
++x优于
x++:的原因:如果您习惯了使用
++x,可以在切换到C
++时为自己节省一些性能问题。但是仅在Java的上下文中,两者是绝对等效的。
就像上面的注释中的 pst 一样,我从不使用
x++or 的返回值
++x,并且如果您都不使用它的返回值,则可能应该坚持使用自己喜欢的值。



