快捷搜索:  汽车  科技

integer类的常用方法(Integer的缓存池)

integer类的常用方法(Integer的缓存池)而通过Intgere.valueOf(122)每次返回的都是缓存池中的对象,他们的引用相等缓存池返回的对象是同一个对象,他们是相等的,通过new的对象则不会相等Integer i=122;Integer ii=Intgere.valueOf(122);这两行代码都会触发调用缓存池

Integer的缓存是从java 5开始,它的引入有助于节省内存,提高程序的效率。

缓存池里面的数值大小为-128~127,为一个字节

缓冲池的调用是通过Integer.valueOf()方法来实现的,

如:

Integer i=122;

Integer ii=Intgere.valueOf(122);

这两行代码都会触发调用缓存池

integer类的常用方法(Integer的缓存池)(1)

缓存池返回的对象是同一个对象,他们是相等的,通过new的对象则不会相等

而通过Intgere.valueOf(122)每次返回的都是缓存池中的对象,他们的引用相等

如:

integer类的常用方法(Integer的缓存池)(2)

Integer a=123为自动装箱,取的是缓存中的值,当整型的值为-128~127时jdk为我们提供了缓存,只要正确使用缓存,可以提供整体的性能,优化内存;但要注意的是超过这个范围时,缓存不在这个规则中,这个需要注意,也可以人为设置这个范围

Integer a=123 等效于Integer a=Integer.valueOf(123);// 这就是自动装箱的原理

同理拆箱时也有内部的编译原理:

Integer a=123;//装箱 int b=a ;// 此处为拆箱,实际上执行了int b=a.intValue();

猜您喜欢: