`

Integer类的缓存IntegerCache

    博客分类:
  • JAVA
 
阅读更多
public static void main(String[] args) {
        Integer i = 127;
        Integer j = 127;
        Integer ii = 128;
        Integer jj = 128;
        System.out.println(i==j);
        System.out.println(ii==jj);
}
结果
true
false

 

查看 Integer 源码

    private static class IntegerCache {
        static final int low = -128;
        static final int high;
        static final Integer cache[];

        static {
            // high value may be configured by property
            int h = 127;
            String integerCacheHighPropValue =
                sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
            if (integerCacheHighPropValue != null) {
                try {
                    int i = parseInt(integerCacheHighPropValue);
                    i = Math.max(i, 127);
                    // Maximum array size is Integer.MAX_VALUE
                    h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
                } catch( NumberFormatException nfe) {
                    // If the property cannot be parsed into an int, ignore it.
                }
            }
            high = h;

            cache = new Integer[(high - low) + 1];
            int j = low;
            for(int k = 0; k < cache.length; k++)
                cache[k] = new Integer(j++);

            // range [-128, 127] must be interned (JLS7 5.1.7)
            assert IntegerCache.high >= 127;
        }

        private IntegerCache() {}
    }

 

分享到:
评论

相关推荐

    cyc学习笔记.pdf

    该缓存池由源码Integer.class中的IntegerCache这个私有静态内部类定义。该缓存池与jvm关系是:缓存池创建缓存数据,jvm会在常量池中直接找到该值引用。不用创建新的对象。还可以在jvm中设置缓存池hi最大值。

    icarus:使用IoC的Little Java缓存框架-WIP

    final Map&lt; Integer&gt; cache = Maps . newHashMap(); int sum( final int . .. operands) { final int parameterHash = Objects . hash(operands); if ( this . cache . containsKey(hash)) { return cache . get...

    litecache:nodeJs 本地缓存

    对null值和integer键的内置支持。 如果您想要陈旧的键删除调度程序、多键支持或事件处理,请查看 。 如果您不需要也不想为这些功能“付费”,那么liteCache适合您。 LiteCache 没有外部依赖项。 随时发表评论和贡献...

    easycache:用于Laravel的简单的按需缓存扩展

    Laravel的一个简单的按需缓存扩展。 类似于paginate()或get()扩展,也允许cache() 。 安装 composer require websanova/easycache 例子 楷模: $item = Item::cache($id); // Get via integer. $item = Item::...

    javalruleetcode-java12-fundamentals-cache-implementations-workshop:LRU/

    java12-fundamentals-cache-implementations-workshop 参考 前言 本次研讨会的目标 理解 LRU 缓存的概念 理解 LFU 缓存的概念 实现 LRU 和 LFU 缓存 看看守卫在列表实现中是如何有用的 工作坊: lfu.workshop , lru....

    【05-面向对象(下)】

    •八大数据类型的包装类分别为:Byte、Short、Integer、Long、Character、 Float、Double、Boolean。 把基本数据类型变量包装类实例是通过对应包装类的构造器来实现的,不仅如此,8个包装类中除了 Character之外,...

    memcached1

    然后再取出来,并进行名称的修改,然后我们再取这个对象,我们再看其名称,发现修改的对象并不是缓存中的对象,而是通过序列化过来的一个实例对象,这样我们就无须担心对原生类的无意修改导致缓存数据失效了,呵呵~~...

    基于SpringBoot的高并发选课系统源码+项目说明(毕设).zip

    2. 通过单例模式构建全局唯一类,根据sessionID保存学生学号,供后续使用 ### 选课 **_此功能为整个系统的重点优化之处,_** 主要分为两大步骤,选课安全验证和执行选课操作 #### **选课安全验证** 1. IP限流,...

    aop-cache:1个具有Rxjava和AOP的Line 2 Cache 4 Android

    aop缓存aop-cache是​​带有android缓存库。 只需添加一条线即可进行缓存。用法将@Cache添加到返回Observable &lt;&gt;的函数中。 @Cache ( memTimeOutMs = 5000 , dbTimeOutMs = 10000 , logLevel = 1 )private ...

    node-true-random:节点中的真实随机数

    node-true-random是用ec​​mascript 6(自动用traceur编译成es5)编写的真正的随机“生成器”。...var integer = gen.integer() //returns a integer between 0 and 1, you can pass diffrent min a

    千方百计笔试题大全

    8、int 和Integer 有什么区别? 9 9、&和&&的区别? 9 10、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别? 9 11、heap 和stack 有什么区别? 9 12、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 9 13、...

    java面试宝典

    8、int 和Integer 有什么区别? 9 9、&和&&的区别? 9 10、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别? 9 11、heap 和stack 有什么区别? 9 12、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 9 13、...

    ZendFramework中文文档

    4.3.3. Zend_Cache_Frontend_Function 4.3.3.1. Introduction 4.3.3.2. A可用的选项 4.3.3.3. 例子 4.3.4. Zend_Cache_Frontend_Class 4.3.4.1. Introduction 4.3.4.2. Available options 4.3.4.3. Examples ...

    jfinalpluginsjfinal-dreampie.zip

     htmlEmail.setSmtpPort(Integer.parseInt(mailerConf.getPort()));  htmlEmail.setSSLOnConnect(mailerConf.isSsl());  htmlEmail.setStartTLSEnabled(mailerConf.isTls());  htmlEmail.setDebug(mailerConf.is...

    ibatis 开发指南(pdf)

    38 Cache .............................................................................................................. 39 MEMORY 类型Cache 与WeakReference ......................................

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

Global site tag (gtag.js) - Google Analytics