有人在一些论坛帖子中假设很多人甚至是经验丰富的Java开发人员都不会理解以下Java代码的和平.
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1++ == i2++);
System.out.println(i1 == i2);
Run Code Online (Sandbox Code Playgroud)
作为一个对Java感兴趣的人,我给了他自己的想法并得出了以下结果.
System.out.println(i1++ == i2++);
// True, since we first check for equality and increment both variables afterwards.
System.out.println(i1 == i2);
// True again, since both variables are already incremented and have the value 128
Run Code Online (Sandbox Code Playgroud)
Eclipse告诉我不然.第一行是真的,第二行是假的.
我真的很感激解释.
第二个问题.这个Java是特定的还是这个例子也适用于基于C语言的例子?