关于Java中自动增量运算符的简单问题

时间:2010-01-22 19:16:14

标签: java auto-increment

我知道从C / C ++开始,autoincrement运算符具有不同的含义,具体取决于它的应用位置(例如:integer = i ++ vs. integer = ++ i)。

在Java中,以下两个语句是否相同?

int i = 1

driverVO.setUid(将String.valueOf(I ++)); // 1?

driverVO.setUid(将String.valueOf(++ⅰ)); // 2?

4 个答案:

答案 0 :(得分:3)

在第一个例子中,我将在声明的其余部分之后递增。

在第二个例子中,我将在它之前递增。

答案 1 :(得分:2)

int x = 1;    
System.out.println(++x); // prints 2


int y = 1;
System.out.println(y++); // prints 1

答案 2 :(得分:2)

Groovy Shell (1.6.0, JVM: 1.6.0_05)
Type 'help' or '\h' for help.
-----------------------------------------------------
groovy:000> i=0
===> 0
groovy:000> j=0
===> 0
groovy:000> i++
===> 0
groovy:000> ++j
===> 1
groovy:000>

它们像在C中一样运行.Groovy对于执行快速java测试非常棒。

(是的,我意识到他们做了一些小改动,但在大多数情况下,如果你在groovy中执行Java代码,它将像在Java中一样执行)

答案 3 :(得分:0)

这两个运营商之间也存在实施差异。

i ++ - >它首先将i的值复制到临时空间,递增i并返回保存的值。

++ i->递增值并返回它。

我可能错了,但使用第二个可能会有更好的表现(特别是如果我是一个对象)。