当前位置:首页 > 数据库

Java Integer的缓存策略

Java5为Integer的缓存操作引入了一个新的特性,用来节省内存和提高性能。策略整型对象在内部实现中通过使用相同的缓存对象引用实现了缓存和重用。上面的源码库策略规则默认适用于整数区间 -128 到 +127(这个整数区间可以通过启动应用的虚拟机参数修改:-XX:AutoBoxCacheMax)。这种Integer缓存策略仅在自动装箱(autoboxing)的缓存时候有用,使用构造器创建的策略Integer对象不能被缓存。云服务器Java 编译器把原始类型自动转换为封装类的缓存过程称为自动装箱(autoboxing),这相当于调用 valueOf 方法。策略 publicstaticInteger valueOf(int i){ if(i >=IntegerCache.low && i <=IntegerCache.high)returnIntegerCache.cache[i +(-IntegerCache.low)];returnnewInteger(i);}

首先看代码:

Java Integer的缓存策略

publicclassTestInteger{ publicstaticvoid main(String[] args){ int i =128;Integer i2 =128;Integer i3 =newInteger(128);//Integer会自动拆箱为int,缓存策略所以为trueSystem.out.println(i == i2);System.out.println(i == i3);System.out.println("

Java Integer的缓存策略

分享到:

滇ICP备2023006006号-16