每日一博 | 为什么阿里巴巴 Java 开发手册中强制要求整型包装类对象值用 equals 方法比较?
在阅读《阿里巴巴Java开发手册》时,发现有一条关于整型包装类对象之间值比较的规约,具体内容如下: 这条建议非常值得大家关注, 而且该问题在 Java 面试中十分常见。 还需要思考以下几个问题: 如果不看《阿里巴巴Java开发手册》,如何知道 Integer var = ? 会缓存 -128 到 127 之间的赋值? 为什么会缓存这个范围的赋值? 如何学习和分析类似的问题? Integer 缓存问题分析 先看下面的示例代码,并思考该段代码的输出结果: public class IntegerTest { public static void main(String[] args) { Integer a = 100, b = 100, c = 666, d = 666; System.out.println(a == b); System.out.println(c == d); } } 通过运行代码可以得到答案,程序输出的结果分别为: true , false。 那么为什么答案是这样? 结合《阿里巴巴Java开发手册》的描述很多人可能会回答:因为缓存了 -128 到 127 之间的数...
