【java 面试题之1+1在什么情况下不等于2 ?】

故事的起源:网上看到一个笑话: 1+1在什么情况下不等于2  ? 最简单的答案是1+1 在算错的情况下,不等于2 ,其实1+1在算对的情况下也未必等于2

 



 

 

原因解释:

 在 Java 5 中,为 Integer 的操作引入了一个新的特性,用来节省内存和提高性能。

 整型对象在内部实现中通过使用相同的对象引用实现了缓存和重用。

 上面的规则适用于整数区间 -128 到 +127。

 这种 Integer 缓存策略仅在自动装箱(autoboxing)时候有用,使用构造器创建的 Integer 对象不能被缓存。

 Javadoc 详细的说明这个类是用来实现缓存支持,并支持 -128 到 127 之间的自动装箱过程。

 最大值 127 可以通过 JVM 的启动参数 -XX:AutoBoxCacheMax=size 修改。

 

1+1在算对的情况下也未必等于2

1群羊 + 1群羊 = 多少只羊

1双鞋子 + 1双鞋子 = 多少双鞋子

1+1 =11

单位不同时.如1小时加1分等于61分

猜你喜欢

转载自gaojingsong.iteye.com/blog/2331971