标签:cap ges 问题 jvm 分析 == [] 著作权 cimage
一个很有趣的现象,下面这两个结果输出的结果是false true,这是为什么?
于是移步到Integer的valueOf(int i);这个方法:
发现一个很有意思的东西,在Integer中存在有一个IntegerCache这个内部类:
它在初始化的时候将256个对象(从-128到127)[补充一下,这个最大值127是可以通过AutoBoxCacheMax进行配置的,只是默认为127],作为Integer的cache,也就是说它利用一个Integer cache[];提前创建了this.value = -128 ~ 127的对象放入到cache中。回到上面分析Integer c = 12;与Integer d = 12;c==d发现原来c和d根本就是cache中的同一个对象,自然返回的是true。搞懂了这个是不是觉得很多问题迎刃而解!
标签:cap ges 问题 jvm 分析 == [] 著作权 cimage
原文地址:http://www.cnblogs.com/zheting/p/7643499.html