为什么后增量在包装器类上起作用
我正在对一些代码进行审查,并遇到了一个实例,有人在递增一个成员变量后,该成员变量是围绕整数的包装类。我自己尝试了一下,真的很惊讶它的工作原理。
Integer x = 0;
System.out.print(x++ + ", ");
System.out.print(x);
这打印出来了,不像我预期的那样。我已经查看了语言规范,找不到任何涵盖此内容的内容。任何人都可以向我解释为什么这有效,如果它在多个平台上是安全的?我本来以为这会分解成0, 1
0, 0
Integer x = 0;
int temp1 = x.intValue();
int temp2 = temp1 + 1;
System.out.println(temp1);
temp1 = temp2;
System.out.println(x.intValue());
但显然,规范中有一些东西使它在最后一行之前添加x = temp1;