我想了解此优化的目的。在什么情况下性能会提高,等等。对该问题的一些研究参考会很棒。
目的主要是为了节省内存,由于具有更高的缓存效率,这也导致了更快的代码。
基本上,Integer
该类会Integer
在-128到127的范围内保留实例的缓存,并且所有自动装箱,文字和的使用Integer.valueOf()
都会从该缓存返回其覆盖范围内的实例。
这是基于以下假设:这些较小的值比其他int出现的频率更高,因此避免每个实例拥有不同对象(Integer
对象占用约12个字节)的开销是有意义的。