java 关于Integer类的问题

查看了Integer类的源代码,发现在-128~127这个范围内的整型字面量的值,不会new一个新的Integer对象,而是直接引用常量池中的Integer对象。请问为什么要对-128~127这个范围的值特殊处理呢?

你可以修改high值,不可以修改low值,至于为什么要选取这个范围,
肯定是经过JDK的开发人员测试调研,这个范围内的数字使用频率最多吧

-128~127这个范围内的整型字面量的值,不会new一个新的Integer对象,而是直接引用常量池中的Integer对象
因为这些最常用

一个Integer类型占用8个字节 除去一个符号位 那么这个类型的最多表示的数字是 2的7次方减一就是127 负数多一位是-128
谢谢

这个你需要问设计人员了。。。一般的说法是这个范围内的数字最常用,所以就缓存起来了,当然你也可以修改这个来缓存更多或更少的值

当多次调用频率过高时,一些常用的值就会从设计角度分离出来,作为常量池中的量来使用