|  |      1blindpirate      2018-07-20 11:25:16 +08:00  1 老梗了,奇技淫巧 | 
|  |      2specita      2018-07-20 12:24:13 +08:00 我理解的是,integer 做++操作的时候,如果在 cache 范围内,只是把数组下标加 1 咯... | 
|      3promise2mm      2018-07-20 12:50:31 +08:00  2 看了一下 Integer 的 valueOf 源码: public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); } --> 伪代码: if i in[-128, 127] return cache[i + 128]; return new Integer(i); 现在把 cache[130] -> cache[131]; 即当 for 循环到 2 的时候, 调用 valueOf(2) == 3 直接跳过了 2. | 
|      4feiyuanqiu      2018-07-20 13:03:02 +08:00 via Android 原理楼上都说了,就说个题外话,知乎的轮子哥真是带坏了好多人 demo 代码的命名 | 
|  |      5hugedata OP @feiyuanqiu 知乎的轮子哥是谁? | 
|  |      6seancheer      2018-07-20 14:20:17 +08:00 @hugedata 指的是你那种 fuck,shit 之类的方法,变量命名方式。。。这个人在知乎回答某些编程问题时经常这么干。 | 
|      7alamaya      2018-07-20 14:58:34 +08:00 你这一堆反射正常人不用翻源码都看出来有坑 | 
|      898jiang      2018-07-20 19:50:25 +08:00 就是把 2 换成 3 了吧 |