当前位置: 首页 > 面试题库 >

在Java中,++ x是否比x ++更有效?

赫连淳
2023-03-14
问题内容

在编程课上,教授正在教我们有关x++和的信息++x,其中x是整数。

他说,在这种情况下,我们可以只将x++or或放进去++x++x以提高效率(虽然有点,但从理论上讲,还是效率更高)。

但是我忘了为什么 。有谁知道?这是与Java。


问题答案:

在Java中效率不是更高。在递增/递减运算符可以重载的语言中,它可能会更有效,但在其他方面,性能则完全相同。

x++和之间的区别在于++xx++返回的值x
是递增之前的值,返回的值是递增之后++x的值x。就代码生成而言,两者都构成了完全相同数量的指令,至少在您可以互换使用两者时(如果不能互换使用,则不必担心哪一个更快),应该选择您需要的那个)。唯一的区别是增量指令的放置位置。

在C
中,类可以重载prefix( ++x)和postfix( x++)运算符。当处理使它们过载的类型时,使用前缀运算符通常快得多,因为后缀运算符的语义将返回对象的副本,与增量之前一样,即使您不使用它,同时前缀运算符可以简单地返回对修改后的对象的引用(上帝知道C

开发人员更喜欢返回引用而不是副本)。这 可能 是考虑++x优于x++:的原因:如果您习惯了使用++x ,可以在切换到C
++时为自己节省一些性能问题。但是仅在Java的上下文中,两者是绝对等效的。

就像上面的注释中的 pst 一样,我从不使用x++or 的返回值++x,并且如果您都不使用它的返回值,则可能应该坚持使用自己喜欢的值。



 类似资料:
  • 基于此,我认为我应该完全开始在中使用

  • 我试图看看是否可以有一个维度为x,y的java链表(不使用哈希映射,也不将x和y作为两个独立的整数),我试图将网格的每个平方存储在链表中,例如(0,1)(0,2)。。

  • 以下Python3.x整数乘法的平均运算时间在1.66s到1.77s之间: 如果将替换为,则需要在和之间。怎么会呢? 另一方面,在Java中则相反:在Java中更快。Java测试链接:为什么在Java中2*(i*i)比2*i*i快? 我运行每个版本的程序10次,以下是结果。

  • 问题内容: 执行此操作后(幕后)会发生什么? 也就是说,当变量在一个语句中后增加并分配给它自己时?我编译并执行了这个。即使整个陈述之后仍然是7 。在我的书中,它说是递增的! 问题答案: 确实增加了。但是,你正在将 的旧值分配给它自己。 1.递增x并返回其旧值。 2. 将旧值分配回自己。 因此,最后将其分配回其初始值。

  • 问题内容: 对于Mac OS X的终端,是否有对Linux的LDCONFIG的并行命令? 问题答案: 答案是不。但是您仍然可以通过环境变量配置搜索路径,请参见dyld(1)。

  • 问题内容: 是否有类似C#/。NET的东西 在Java中? 问题答案: 编辑:作为Java 8,这可能与 在Java8之前: Java中没有这样的东西, 但是您可以有如下内容: 例如,您可以通过以下方式使用Range: 另外,如果您不喜欢直接使用,则可以使用工厂类: 这是我们的工厂测试: 我希望这些会有用:)