Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 效率++;我对我++;在爪哇 我最近读到,C++ +i比其对应的i++更有效,因为第一个(++i)做增量,返回递增的值,而后者(i++)创建值的副本,返回它并执行增量。_Java_Performance - Fatal编程技术网

Java 效率++;我对我++;在爪哇 我最近读到,C++ +i比其对应的i++更有效,因为第一个(++i)做增量,返回递增的值,而后者(i++)创建值的副本,返回它并执行增量。

Java 效率++;我对我++;在爪哇 我最近读到,C++ +i比其对应的i++更有效,因为第一个(++i)做增量,返回递增的值,而后者(i++)创建值的副本,返回它并执行增量。,java,performance,Java,Performance,Java中也会发生同样的情况吗?这两种操作都不是由多个步骤组成的原子操作。与C++不同,这些运算符不能重载。因此,Java在性能方面没有差别 在x++和++x之间,您应该注意的唯一区别是x++在递增之前返回值。和++x做同样的事情,但是在增加之后 这提供了一个字节码示例。“效率更高”是有争议的。在大多数情况下,编译器会将它们优化为相同的机器代码(当结果未被使用时)。因为后缀和前缀表达式在Java中的工作方式相同,所以它的行为可能是相同的。无论性能有什么不同,它都不会超过纳秒,所以你不应该太在意,


Java中也会发生同样的情况吗?

这两种操作都不是由多个步骤组成的原子操作。与C++不同,这些运算符不能重载。因此,Java在性能方面没有差别

x++
++x
之间,您应该注意的唯一区别是
x++
在递增之前返回值。和
++x
做同样的事情,但是在增加之后


这提供了一个字节码示例。

“效率更高”是有争议的。在大多数情况下,编译器会将它们优化为相同的机器代码(当结果未被使用时)。因为后缀和前缀表达式在Java中的工作方式相同,所以它的行为可能是相同的。无论性能有什么不同,它都不会超过纳秒,所以你不应该太在意,但其中一个答案似乎暗示字节码有差异。看看这个答案:最好告诉我们在哪里以及为什么要这样做您试图保存性能。怀疑
i++
++i
能解决任何问题。而是考虑Java中更高的抽象。如果您关心这种低级性能,那么您选择了错误的语言。Java的性能没有差别。@TimBiegeleisen,你的答案是C#,我认为它不是完全有用的here@RaulLuna我所指的答案是Java。这在这里是完全有用的。