关于这个问题网上有好多答案,最近有人说这是个奇葩问题
个人测试了一把,如果是普通的数字的话,基本上没有问题
public static void main(String[] args) { int a = 2147483647; int b = 2147483646; // a=a+b; // b=a-b; // a=a-b; // b = a + (a = b) * 0; // a = a * b; // // b = a / b; // // a = a / b; a ^=b; b ^=a; a ^=b; System.out.println(a + "," + b); }
试了试,只用下面这种方式会 得出 -1 的结果
a = a * b; b = a / b; a = a / b;
2147483646,-1