跨平台使用绝对安全。该行为在Java语言规范的第15.4.2节中进行了规定(强调):
后缀表达式的结果必须是可转换为数字类型(第5.1.8节)的类型的变量,否则会发生编译时错误。
后缀增量表达式的类型是变量的类型。后缀增量表达式的结果不是变量,而是值。
在运行时,如果操作数表达式的求值突然完成,则后缀增量表达式由于相同的原因而突然完成,并且不会发生增量。否则,将值1加到变量的值上,
并将总和存储回变量中
。在添加之前,对值1和变量的值执行二进制数值提升(第5.6.2节)。如有必要,可通过缩小原始转换(第5.1.3节)来对和进行缩小,和/或在存储变量之前将其进行装箱转换(第5.1.7节)至变量的类型。后缀增量表达式的值是存储新值之前的变量值。
编辑 这是您的示例代码中发生的事情的更准确的等价物:
Integer x = 0;int temp = x.intValue();x = temp + 1; // autoboxing!System.out.println(temp + ", ");System.out.println(x.intValue());



