本帖最后由 猎鹰tianya 于 2014-1-21 18:55 编辑
据说,这是一种设计模式:享元模式
简单一句话理解:分享细粒度数据!
可能Java认为,这种小的数据用到几率大。
所以为了提高效率,这样的对象创建一次后,会被缓存起来,下次用的时候直接拿,不会再次创建。
至于为什么只缓存【-128-127】这个范围内的数,这是因为,,,,,,,源代码里是这么规定的啊。
你可以去JDK安装目录下找到src.zip,用压缩软件打开,然后找到Integer的源码,一探究竟。
或者,在eclipse中,Ctrl+单击-->打开源文件:
尽管,看不懂,但可以找到专门用于缓冲的这个内部类:IntegerCache
|