`

java的Integer缓存设置

    博客分类:
  • jdk
 
阅读更多
public static void main(String[] args) { 
		   Integer a=200;
		   Integer b=200;
		   System.err.println(a==b);
		} 


一般人会肯定的说结果是false。因为Integer 的缓存范围是-128至127.
但其实127这个数字是可以认为改变的(当然改变的值也不能小于127):
-Djava.lang.Integer.IntegerCache.high=250
当改成250的时候,结果是true了。


对应的jdk的源码:


 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) {
                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);
            }
            high = h;



分享到:
评论

相关推荐

    Java Integer的缓存特性

    项目里遇到的小问题的 整理

    Integer缓存池案例1

    【Integer缓存池案例1】 在Java编程中,Integer对象的使用涉及到缓存池的概念。Integer类在JDK中提供了缓存机制,用于优化Integer对象的创建和使用,特别是对于小数值。当我们在程序中创建Integer对象时,如果值在-...

    JAVA Integer == equal 比较 doc 比较大小 是否相等

    在 Java 中,Integer 对象在 -128 到 127 之间的值是缓存的,这意味着在这个范围内的所有 Integer 对象都是同一个对象引用。因此,当我们创建两个 Integer 对象,并将它们的值设置在这个范围内时,它们将引用的是同...

    Java中Integer两种转int方法比较

    这个方法通常在你需要使用`Integer`对象的特性(如缓存、比较操作或泛型方法参数)时使用。 在面试或笔试题中,如题目所示,`a = Integer.parseInt("123")`会将字符串"123"解析为`int`类型的值,并赋给变量a,所以a...

    JAVA-int和Integer的区别1.zip

    在缓存和常量池方面,`Integer`类提供了一个缓存机制,用于存储-128到127之间的整数值。这意味着在这个范围内创建`Integer`对象时,如果已有相同的值存在,就会复用已存在的对象,避免了重复的内存分配。这个特性在...

    JAVA-int和Integer的区别

    需要注意的是,当进行`Integer`之间的比较时,如果值在-128到127之间,Java会使用缓存来提高性能,因此比较速度较快。但超出这个范围,每个`Integer`对象都是独一无二的,即使值相同,`==`比较也会返回`false`,此时...

    Java memcache缓存实现for Windows.docx

    例如,`setServers(String[] servers)`用于设置服务器列表,而`setWeights(Integer[] weights)`用于设置每个服务器的权重,这在负载均衡中非常重要。 - `setInitConn(int initConn)`: 设置每个服务器的初始连接数,...

    Java实现的树以及包含树的内存缓存框架

    随手写了一个TreeNode,顺道实现了个对应的内存缓存框架,适用于数据量不大,更新也少但是反复要读的数据,比如模块信息/组织结构/频道栏目/权限等。 PS:Java是可以直接操作内存的,只是现在的框架整合让人退化了。...

    55丨享元模式(下):剖析享元模式在JavaInteger、String中的应用1

    在Java中,享元模式在Integer和String类中有显著的应用。 首先,我们来看Integer类。在Java中,基本数据类型int的封装类是Integer。在某些情况下,我们可能需要将int转换为Integer对象,这个过程称为自动装箱。反之...

    Integer类的缓存机制

    `这行代码中,由于110在Integer缓存的范围内(-128到127),所以Integer#valueOf(int i)方法会从缓存中获取已经存在的110对应的Integer对象,因此a和b指向的是同一个对象,`a == b`的结果为`true`。 而在`Integer c...

    Java memcache缓存实现for Windows.pdf

    3. `setWeights(Integer[] weights)`: 设置各个服务器的权重,权重对应于服务器列表的位置,用于分配不同的访问优先级。 4. `setInitConn(int initConn)`, `setMinConn(int minConn)`, `setMaxConn(int maxConn)`: ...

    Java 基础.pdf_电子版pdf版

    在Java 8中,Integer缓存池的大小默认为-128到127,这个范围可以通过系统属性"java.lang.Integer.IntegerCache.high"进行调整。 ```java public static Integer valueOf(int i) { if (i >= IntegerCache.low && i ...

    通过实例了解Java Integer类和int的区别

    Java中的Integer和Long类型都有缓存机制,在一定范围内的值会被缓存,以提高性能。 知识点8:自动拆箱和装箱的应用 自动拆箱和装箱机制可以使我们的代码更加简洁和高效,但是需要注意其使用场景,以避免出现意外的...

    Java Integer.ValueOf()的一些了解

    Java Integer.ValueOf()的一些了解 在Java中,Integer.ValueOf()方法是一个非常重要的方法,它可以将整数类型的值转换为Integer对象。下面我们就来详细了解一下这个方法的实现原理和使用方式。 首先,让我们来看...

    Java int与integer的对比区别

    7. **缓存**:`Integer` 类有一个内置的缓存,用于存储-128到127之间的值。这意味着对于这个范围内的 `Integer` 实例,多次创建相同的值会复用同一个对象,而不会创建新的对象。 8. **可为空**:`Integer` 可以为 `...

    java 整型数与Integer的缓存深入理解

    本文将深入探讨Java整型数与Integer的缓存机制,以帮助开发者更好地理解和使用这两种类型。 首先,`int`是Java的基本数据类型之一,它在内存中直接存储数值,没有额外的对象开销。而`Integer`是`int`的封装类,它是...

    java中Integer包装类装箱的一个细节详解

    总之,理解Java中的Integer装箱细节和其背后的缓存机制对于编写高性能的Java代码至关重要。在处理Integer对象时,特别是涉及到对象比较时,要考虑到这个缓存范围,以避免出现意外的结果。在大量创建Integer对象的...

    Java基础之Integer使用的注意事项及面试题

    首先,Integer 对象在 Java 中的缓存机制,-128 到 127 之间的整型已经初始化放在 IntegerCache 中,如果是装箱的话,就会从这里面取对象。这意味着,如果你创建了两个 Integer 对象,值相同,那么他们可能是同一个...

    Java Integer.valueOf()和Integer.parseInt()的区别说明

    Java Integer.valueOf()和Integer.parseInt()的区别说明 Java 中的 Integer 类中有两个静态方法,Integer.valueOf(String s) 和 Integer.parseInt(String s),它们都可以将字符串转换为整型,但它们之间有着很大的...

    更简单的Java缓存框架 jscache.docx

    ### 更简单的Java缓存框架 jscache #### 知识点概述 jscache是一个轻量级、易用的Java缓存框架,它基于面向切面编程(AOP)原理实现,支持灵活配置缓存策略,并提供了多种缓存实现方式。通过使用jscache,开发者...

Global site tag (gtag.js) - Google Analytics