专业编程基础技术教程

网站首页 > 基础教程 正文

Integer缓存池

ccvgpt 2024-08-06 12:35:39 基础教程 15 ℃


在Integer类内部有一个静态内部类IntegerCache,该类里面利用Integer类型的数组维护了一个缓存池。

Integer缓存池

当我们创建Integer类型的变量时,例如:

Integer a = 100;Integer b = 100;

反编译后就会发现,实际是调用了Integer的valueof方法。

valueOf方法会先去判断,传入的数值大小是否在维护的缓存范围内,如果在就从IntegerCache里的缓存的对象,否则才会创建新的对象。

缓存池是什么时候创建的

Integer里面缓存池的代码如下:

当IntegerCache类被加载的时候,就会执行类里面的静态代码块。在静态代码块了初始化了缓存池。

缓存池的大小

缓存池最小值是-128,最大值默认是127,不过,这个最大值是可以根据参数调整的,当然了,不能比127小,如果设置的比127小,那么最大值还是127

所以,当我们创建对象

Integer a = 100;

Integer b =100;

比较 a==b;返回值为true

Tags:

猜你喜欢

最近发表
标签列表